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

我的代码:
#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);
}
}
问题的意思就是说,我打开上面这个程序,输入两个值,结果他刚计算好程序就结束了,我都来不及看。而且我希望可以计算完一个运算以后可以再输入一组数再进行一次运算,不然计算完一次它自动关闭以后我如果还要计算的话还得再打开一次,太麻烦了。

问题就是这样。很简单。希望的大家帮帮我!

增加了循环输入的功能,你试试吧,代码最后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 开始执行,新的计算开始。

追问

哦谢谢你 我大概懂了

还想问问你 为什么a,b不能是负数呢?我输入负数的时候就会出错

追答

输入负数,也是对的呀

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-30
#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就可以了退出程序了。

第2个回答  2013-09-30
把所有要计算的步骤写在一个while(c=!getchar(s)){ }里面,每次结束时候都输入一个字母,不是s就继续计算
第3个回答  2013-09-30
使用while语句,while(1)大循环,让程序一直执行,可以添加一个标志变量(例如:flag)进行有意识控制程序的继续或者结束!if(flag==1)--->执行循环体,if(flag==0) break;跳出while循环.本回答被提问者采纳
第4个回答  2013-09-30
#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;
}
}
相似回答