C语言实现加减乘除运算

输入两个数进行加减乘除运算,循环体(用for循环并且带判断的).比如输入Y继续下一组运算输入N结束运算。本人while和dowhile的都会但是for循环带判断的实在不会... 输入两个数进行加减乘除运算,循环体(用for循环并且带判断的).比如输入Y继续下一组运算输入N结束运算。本人while和dowhile的都会但是for循环带判断的实在不会 求大神帮忙改改!

这是自己写的while的 求大神帮忙改成for循环体系带判断谢谢!!!!!
展开
 我来答
Guccang
2010-06-28 · TA获得超过111个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:72.6万
展开全部
按照你的程序运行后。。。在输入c值的时候
程序直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;
原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为
回车符不是数字形式的。
以下是我改过的程序,编译运行都很好的

#include <stdio.h>
#include <math.h>

void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
//这种情况经常遇到。。。。输入完后回车被下一个scanf("%c",&c)捕获了。
//因为回车符也是字符,所以你按回车后,程序以为是输入了c的值了
//所以加上下面一行,把回车符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
//为了好看
printf("\n");
}
魏天伟518
推荐于2017-11-25 · TA获得超过233个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:147万
展开全部
改成“for(;y==‘y’;)”就可以了的!for语句的三个参数,第一个是进行初始化的,第二个是用来判断的,第三个是在语句最后进行运算的。不懂可以追问,望采纳!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lygszmjj
2014-03-17 · TA获得超过1814个赞
知道小有建树答主
回答量:1192
采纳率:0%
帮助的人:411万
展开全部
while循环改成for循环就可以了。

用 for(;y=='y';) 替换while(y=='y')即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
S_B傻瓜公子
2010-06-28
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
原因是因为你输入完'b'之后,按回车,编译器会把回车键当做是'c'说输入的内容,所以会出错。
我改了一下,你可以看到可以输入并算出结果,但输入有点难看,如(2 1+),'1'和'+'之间不要加任何东西。你可以自己再想想怎么改吧,考试中。
程序如下:
#include <stdio.h>
#include <math.h>

void main()
{
float a,b;
char c;
printf("\n 请输入两个整数,一个运算符: ");
scanf("%f",&a);
scanf("%f",&b);
scanf("%c",&c);
switch(c)
{
case '+': {printf("\na+b=%f\n",a+b);break;}
case '-': {printf("\na-b=%f\n",a-b);break;}
case '*': {printf("\na*b=%f\n",a*b);break;}
case '/': {printf("\na/b=%f\n",a/b);break;}
default: break;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
渠济0D
2010-06-28 · 超过10用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:31.6万
展开全部
#include <stdio.h>
#include <math.h>

void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
printf("\n input c:");
scanf("%c",&c);
printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
}
---------------------
在每一个case后面都要加上break,否则回贯穿到下一case语句中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式