error C2296: '%' : illegal, left operand has type 'float ' 什么意思啊 看不懂

#include<stdio.h>voidmain(){floata,b,c;charop;printf("请输入:");scanf("%d%c%d",&a,&op,&b... #include<stdio.h>
void main()
{
float a,b,c;
char op;
printf("请输入:");
scanf("%d%c%d",&a,&op,&b);
switch(op)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
case '%':c=a%b;break;
}
printf("%.2f%c%.2f=%.2f\n",a,op,b,c);
}
展开
 我来答
百度网友6fe74e2
推荐于2018-02-28 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:267万
展开全部
%运算两边的变量是整型int
而你声明的变量a是float类型
float变量%运算非法。
追问
改成int还是不对啊
追答
int a,b,c;
printf("%d %c %d = %d",a,op,b,c);
眼眶的湿润
2013-03-18 · TA获得超过3279个赞
知道小有建树答主
回答量:806
采纳率:50%
帮助的人:576万
展开全部
你的第一句是float a,b,c;float类型是浮点型,也就是带小数的,你要把这个改成int型的才能使用%的操作符,因为使用%必须两边都是整型才行(int或long)

如果还有错误,请问是什么错误呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzw820428
2013-03-18 · TA获得超过729个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:688万
展开全部
你定义的abc都是float型的,C语言里面float是不能够做取余运算的。
而且,scanf的地方也有问题,浮点数用f%
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingchaoant
2013-03-18 · TA获得超过1111个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:103万
展开全部
#include<stdio.h>
int main()
{
float a,b,c;
char op;
printf("请输入:");
scanf("%f %c %f", &a, &op, &b); //这边scanf用%f,并在3个参数间留一个空格,否则无法区分
switch(op)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
//case '%':c=a%b;break; //这边是浮点型,不支持取余,先注掉
}
printf("%.2f%c%.2f=%.2f\n",a,op,b,c);
}

修改后编译通过,运行正常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式