Регистрация: 09.12.2012
Сообщений: 6
|
Нужно соединить два кода в один
Есть два кода, один делает одно, другой другое, надо их в один соединить, помоги пожалуйста!!! очень срочно надо!!!
1 код:
Код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#define isoper(x) ((x=='(')||(x==')')||(x=='>')||(x=='<')||(x=='}')||(x=='+')||(x=='-')||(x=='*')||(x=='/')||(x=='^')||(x==' ')||(x==';')||(x=='='))
char arr[100][100], *p = &arr[0][0], string[100], *s=string, znaki[100], *z=znaki, if1[100] = "if",print1[100]="printf";
int i=0, j=0, k=5, res=0, tt=0;
char n, for1[100]="for", str2[500], *s2=str2;
int Exspression(int x, int y,char z);
int main()
{
gets(string);\
while(*s2!='=')
{
gets(str2);
strcat(s,str2);
}
while(*s)
{
while(!isoper(*s)&&(*s))*p++=*s++;
*z++=*s++;
// puts(arr[i]);
// printf("\n %c \n", (*z++));
i++;
p = &arr[i][0];
}
if (!strcmp(arr[2],if1)) n='1';
else if (!strcmp(arr[0],print1)) n='2';
else if (!strcmp(arr[0],for1)) n='3';
else if (isdigit(arr[0][0])) n='4';
// puts(arr[2]);
// puts(if1);
// printf("%c\n", znaki[3]);
switch(n)
{
case '1':
k=atoi(arr[1]);
switch(znaki[3])
{
case '>':
res = (k>atoi(arr[4]));
break;
case '<':
res = (k<atoi(arr[4]));
break;
case '=':
res = (k==atoi(arr[4]));
break;
}
if(res!=0) printf("%d", k);
else puts(arr[10]);
break;
case '2':
k=atoi(arr[1]);
puts(arr[1]);
break;
case '3':
if (znaki[3]=='<')
{
for(k=atoi(arr[2]);k<atoi(arr[4]);k++)
{
if(!strcmp(arr[9],print1)) printf("%d ",k);
}
}
if (znaki[3]=='>')
{
for(k=atoi(arr[2]);k>atoi(arr[4]);k--)
{
if(!strcmp(arr[9],print1)) printf("%d ",k);
}
}
break;
case '4':
printf("%d",k=Exspression(atoi(arr[0]),atoi(arr[1]),znaki[0]));
break;
}
return 0;
}
int Exspression(int x, int y,char z)
{
int ot=0,v;
if(z=='+')ot=x+y;
if(z=='-')ot=x-y;
if(z=='*')ot=x*y;
if(z=='/')
{
if(y==0)printf("Error");
else ot=x/y;
}
if(z=='^')ot=pow(x,y);
if(z=='%')
{
if(y==0)printf("Error");
else ot=fmod(x,y);
}
return ot;
}
2 код:
Код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define isoper(x) ((x=='(')||(x==')')||(x=='>')||(x=='<')||(x=='!')||(x=='+')||(x=='-')||(x=='*')||(x=='/')||(x=='^')||(x==' ')||(x==';')||(x=='=') || (x=='&') || (x=='{') || x=='}')
#define SIZE 100
#define LONG 100
char arr[SIZE][LONG], *p = &arr[0][0], string[LONG], string5[LONG],string1[LONG],string2[LONG],string3[LONG],string4[LONG], *s=string, print1[SIZE] = "printf", znaki[SIZE],else1[SIZE] = "else", *z=znaki, if1[SIZE] = "if", while1[SIZE] = "while";
int i=0, j=0, k=5, res=0;
int main()
{
gets(string);
gets(string1);
gets(string2);
gets(string3);
gets(string4);
gets(string5);
strcat(string,string1);
strcat(string,string2);
strcat(string,string3);
strcat(string,string4);
strcat(string,string5);
while(*s)
{
while(!isoper(*s)&&(*s))*p++=*s++;
*z++=*s++;
while(arr[i][j])
{
// printf("%c", arr[i][j]);
j++;
}
// printf(" %c \n", (*z++));
j=0;
i++;
p=&arr[i][0];
}
k=atoi(arr[1]);
// puts(arr[2]);
// puts(if1);
//printf("%c\n", znaki[3]);
if(!strcmp(arr[2], if1) || !strcmp(arr[5], else1))
{
switch(znaki[6])
{
case '>':
res = (k>atoi(arr[4]));
break;
case '<':
res = (k<atoi(arr[4]));
break;
case '=':
res = (k==atoi(arr[4]));
break;
case '%':
res = (k==atoi(arr[4]));
break;
}
if(res) printf("%d", k);
else printf("wrong");
}
int ii=atoi(arr[5]);
if(!strcmp(arr[2], while1)) {
switch(znaki[2]){
case '>':
res = (k>atoi(arr[4]));
break;
case '<':
res = (k<atoi(arr[4]));
break;
case '=':
res = (k==atoi(arr[4]));
break;
}
while(k<atoi(arr[4])){
printf("%d\n",k);
if
(k%2==0) printf ("chetnoe\n");
else printf ("nechetnoe\n") ;
k++;}
/* { if(k%2==0)printf ("\nchetnoe\n");
else printf("\nnechetnoe\n");*/
}
// for(;;) printf("%d", k); }
while(k>atoi(arr[4])){
printf("%d\n",k);
// { if(k%2==0)printf ("\nchetnoe\n");
// else printf("\nnechetnoe\n");
k++;}
/*if(!strcmp(arr[], print1)) {
printf("%s\n", arr[3]);
};*/
return 0;
}
Последний раз редактировалось Stilet; 12.02.2013 в 19:07.
|