c语言设计四则运算 输入一个式子就得解

新手啊,老出错啊
这个要求用if语句的
#include<stdio.h>
void main()
{
float a=0,c=0,d=0;
char b;
printf("welcome\n")
scanf("%f%c%f",&a,&b,&c);
if (b==/)
{if(c=0) printf("error\n")
else d=a/c
printf("%d\n",d)
}
else if (b==+) d=a+c
else if (b==-) d=a-c
else if (b==*) d=a*c
printf("%g%c%g=%g\n",a,b,c,d);
}

#include<stdio.h>
void main()
{
float a=0,c=0,d=0;
char b;
printf("welcome\n") ; //分号是C一条语句的结尾
scanf("%f%c%f",&a,&b,&c);

if (b=='/') //单字符要用''引起来
{
if(c==0) //这里比较要用==,=是赋值
{
printf("error\n") ; //分号
return ; //既然出错了,那就不要再做后面的事了
}
else
{
d=a/c ; //分号
//printf("%d\n",d) ; //分号 ,且,当c为0时,你输出d有意义吗?
//而且后面有printf("%g%c%g=%g\n",a,b,c,d);这句,所以本句多余了
}
}
else if (b=='+') d=a+c ; //分号与字符问题
else if (b=='-') d=a-c ; //分号与字符问题
else if (b=='*') d=a*c ; //分号与字符问题
printf("%g%c%g=%g\n",a,b,c,d);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-15
首先,少了这么多分号!!!!!!!!!
# include<stdio.h>
void main()
{
float a=0,c=0,d=0;
char b;
printf("welcome\n");
scanf("%f%c%f",&a,&b,&c);
if (b=='/')
{if(c==0) printf("error\n");
else d=a/c;
printf("%d\n",d);
}
else if (b=='+') d=a+c;
else if (b=='-') d=a-c;
else if (b=='*') d=a*c;
printf("%g%c%g=%g\n",a,b,c,d);
}本回答被提问者和网友采纳
第2个回答  2012-03-25
# include <stdio.h>
# include <string.h>
void main()
{
float a=0,c=0,d=0;
char b;
printf("welcome\n");
scanf("%f%c%f",&a,&b,&c);
if (b=='/')
{ if(c=0) {printf("error\n");return;}
else d=a/c;
}
else if (b=='+')d=a+c;
else if (b=='-')d=a-c;
else if (b=='*')d=a*c;
else {printf("b输入错误\n");return;}
printf("%f%c%f=%f\n",a,b,c,d);
}
第3个回答  2012-03-25
#include<stdio.h>
#include<string.h>
main()
{
float a=0,c=0,d=0;
char b;
printf("welcome\n");
scanf("%f%c%f",&a,&b,&c);
if(strcmp(b,/)==0)
{
if(c==0) printf("error\n");
else d=a/c;
printf("%d\n",d);
}
else if (strcmp(b,+)==0) d=a+c
else if (strcmp(b,-)==0) d=a-c
else if (strcmp(b,*)==0) d=a*c
printf("%f%c%f=%f\n",a,b,c,d);
}a=0.0追问

if(strcmp(b,/)==0)
显示Expression syntax in function main

第4个回答  2012-03-25
你少很多的分号...
冒汗

可加Q群:122949029或27896931