怎么让C语言写的计算器计算完一组数以后不让程序结束,返回再重新计算别的数?

我的代码:#include<stdio.h>intmain(){floata,b;printf("请输入两个正数,中间用逗号隔开:\n");scanf("%f,%f",&... 我的代码:
#include<stdio.h>
int main()
{
float a,b;
printf("请输入两个正数,中间用逗号隔开:\n");
scanf("%f,%f",&a,&b);
printf("两数之和a+b为%f\n",a+b);
printf("两数之差a-b为%f\n",a-b);
printf("两数之积a*b为%f\n",a*b);
if(b==0)
{
printf("Error.You can't keep the divisor is equal to zero.");
}
else
{
printf("两数之商a/b为%f\n",a/b);
}
}
问题的意思就是说,我打开上面这个程序,输入两个值,结果他刚计算好程序就结束了,我都来不及看。而且我希望可以计算完一个运算以后可以再输入一组数再进行一次运算,不然计算完一次它自动关闭以后我如果还要计算的话还得再打开一次,太麻烦了。

问题就是这样。很简单。希望的大家帮帮我!
展开
 我来答
cjj796
2013-09-30 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3635万
展开全部

增加了循环输入的功能,你试试吧,代码最后4句是后加的:

#include<stdio.h>
#include <ctype.h>

int main()
{
  while(1)
  {
float a,b;
printf("请输入两个正数,中间用逗号隔开:\n");
scanf("%f,%f",&a,&b);
printf("两数之和a+b为%f\n",a+b);
printf("两数之差a-b为%f\n",a-b);
printf("两数之积a*b为%f\n",a*b);
if(b==0)
{
printf("Error.You can't keep the divisor is equal to zero.");
}
else
{
printf("两数之商a/b为%f\n",a/b);
}

getchar();                           // 后加的语句 
printf("\n y 继续计算,n 退出\n");   // 后加的语句
if(toupper(getchar()) == 'N')        // 后加的语句  
    break;                           // 后加的语句
  }
}
更多追问追答
追问
getchar是什么意思?
if(toupper(getchar()) == 'N') 这句话中toupper是什么意思?
而且我没看懂。为什么输入y就能继续计算了?
追答
还有什么问题吗,满意请采纳

getchar是接收一个字符输入;
toupper 是将输入的字母,变成大写;

其实这个程序是:输入N或n 结束程序,其它任意字符继续计算;
当你输入 N或n 的时候 ,程序执行了 break; 也就退出了 while 循环,程序结束;
当你输入 Y 或其它字符的时候,程序就又从 while 开始执行,新的计算开始。
huangqiuchan
2013-09-30 · TA获得超过1147个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:198万
展开全部
#include<stdio.h>
int main()
{
float a,b;
printf("请输入两个正数,中间用逗号隔开:\n");
while (scanf("%f,%f",&a,&b) != EOF) //这里改成这样子
{
printf("两数之和a+b为%f\n",a+b);
printf("两数之差a-b为%f\n",a-b);
printf("两数之积a*b为%f\n",a*b);
if(b==0)
{
printf("Error.You can't keep the divisor is equal to zero.");
}
else
{
printf("两数之商a/b为%f\n",a/b);
}
printf("请输入两个正数,中间用逗号隔开:\n");
}
}


当不需要再计算的时候,按一次ctrl+z就可以了退出程序了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慕桖寻绿3A
2013-09-30 · TA获得超过160个赞
知道答主
回答量:101
采纳率:0%
帮助的人:58.6万
展开全部
把所有要计算的步骤写在一个while(c=!getchar(s)){ }里面,每次结束时候都输入一个字母,不是s就继续计算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-30
展开全部
使用while语句,while(1)大循环,让程序一直执行,可以添加一个标志变量(例如:flag)进行有意识控制程序的继续或者结束!if(flag==1)--->执行循环体,if(flag==0) break;跳出while循环.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧阳志谋
2013-09-30 · TA获得超过192个赞
知道答主
回答量:169
采纳率:100%
帮助的人:64.9万
展开全部
#include<stdio.h>
int main()
{
float a,b;
char de[10]={'\0'};

while(1)
{
printf("请输入两个正数,中间用逗号隔开:\n");
scanf("%f,%f",&a,&b);
printf("两数之和a+b为%f\n",a+b);
printf("两数之差a-b为%f\n",a-b);
printf("两数之积a*b为%f\n",a*b);
if(b==0)
{
printf("Error.You can't keep the divisor is equal to zero.");
}
else
{
printf("两数之商a/b为%f\n",a/b);
}
printf("按任意键结束\n");
gets(de);
continue;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式