народ а подскажите в 3 задаче только числа?или там ещё переменные задавать?вроде написал но на выражение типа X Y + оно выдает ноль.Это нормально?
вот код:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void turn (char s[])
{
int i=strlen(s)-1,j;
char c;
for(j=0;j<i/2+1;j++)
{
c=s[j];
s[j]=s[i-j];
s[i-j]=c;
}
}
void insert(char s1[],char s2[],int n)
{
int i,l1=strlen(s1),l2=strlen(s2);
for(i=l1+n;i>l1-1;i--)
{
s1[i]=s1[i-n];
s1[i-n]=' ';
}
for(i=0;i<l2;i++)
s1[i+n]=s2[i];
}
int schet(char s[])
{
int i=0,l=strlen(s),j=0,b=0,res;
char s1[255],s2[255];
while(((s[i]<'0')||(s[i]>'9')||(s[i]==' '))&&(i<l))
i++;
if(i!=l)
while((s[i]>='0')&&s[i]<='9')
s1[j++]=s[i++];
s1[i]='\0';
res=atoi(s1);
while((s[i]!='-')&&(s[i]!='+')&&(s[i]!='*')&&(s[i]!='/')&&(i<l))
i++;
if(i!=l)
{
j=i-1;
while(s[j]==' ')
j--;
while((s[j]>='0')&&(s[j]<='9')&&(j>-1))
{
s1[b++]=s[j];
s[j--]=' ';
}
s1[b]='\0';
b=0;
while(s[j]==' ')
j--;
while((s[j]>='0')&&(s[j]<='9')&&(j>-1))
{
s2[b++]=s[j];
s[j--]=' ';
}
s2[b]='\0';
turn(s1);
turn(s2);
if(s[i]=='-')
res=atoi(s2)-atoi(s1);
if(s[i]=='+')
res=atoi(s2)+atoi(s1);
if(s[i]=='*')
res=atoi(s2)*atoi(s1);
if(s[i]=='/')
res=atoi(s2)/atoi(s1);
s[i]=' ';
itoa(res,s1,10);
insert(s,s1,i);
res=schet(s);
return(res);
}
return(res);
}
void main()
{
char str[1024];
int res=0;
printf("Vvedite virajenie\n");
gets(str);
res=schet(str);
printf("%i\n",res);
}