c语言,在线等待,急

来源:百度知道 编辑:UC知道 时间:2024/06/19 15:01:48
#include<stdio.h>
void main()
{
float a,b,s;
char op;
printf("Enter a,b:");
scanf("%f,%f",&a,&b);
op=getchar();
if(op=='+')
s=a+b;
if(op=='-')
s=a-b;
if(op=='*')
s=a*b;
else(op=='/');
s=a/b;
printf("%f",s);

}2. 编程实现以下功能,读入两个数(d1,d2)和一个运算符(op),计算d1 op d2的值。例如,若输入15、5和“/”,则计算“15
哪里错。。。

输入的时候要像这个例子这样:2.3,3.7+
另外就是else(op=='/'); 错了
首先漏了if,另外多了一个分号
下面是改好的:
#include<stdio.h>
void main()
{
float a,b,s;
char op;
printf("Enter a,b:");
scanf("%f,%f",&a,&b);
op=getchar();
if(op=='+')
s=a+b;
if(op=='-')
s=a-b;
if(op=='*')
s=a*b;
if (op=='/')
s=a/b;
printf("%f",s);
}

scanf 和getchar之类的不要混用。 scanf读完了后面会剩个换行, 结果被getchar 读到

不如都scanf了算了 scanf ("%f,%f,%c", &a, &b, &op);

另外你下面的一连串 if。。。 最后来了个else(op =='/') else有这语法么?

还不如都 if 了算了呢

scanf("%f,%f",&a,&b);
op=getchar();
这个op可能是空格了吧