首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编了一篇简单的计算机代码 但执行中有个不理解的地方 多谢

2012-06-06 
编了一篇简单的计算机代码 但执行中有个不理解的地方谢谢代码如下:#includestdio.hint main(void){float

编了一篇简单的计算机代码 但执行中有个不理解的地方 谢谢
代码如下:
#include<stdio.h>
int main(void)
{  
float 数字1=0.0;
float 数字2=0.0;
char 运算符号=0.0;
char 回答=0.0;

开始:


printf ("请依次输入数字,符号,数字\n");
scanf ("%f %c %f",&数字1,&运算符号,&数字2);


switch(运算符号)
{
case '+':
printf("=%f\n",数字1+数字2);
  break;
case '-':
printf("=%f\n",数字1-数字2);
break;
case '*':
printf("=%f\n",数字1*数字2);
break;
case '/':
if (数字2==0)
printf("你输入的有误请输入非零的数字\n");
else
printf("=%f\n",数字1/数字2);
break;
default:
printf("输入有误\n");
}
   
printf("是否要退出?(y/n)");
scanf("%c",&回答);
if (回答=='y'||回答=='Y')
goto 开始;
return 0;

   


}




问题:我想让它可以重复使用计算。但是在执行完scanf("%c",&回答);
这步时会自动退出程序。 该怎么解决?

[解决办法]
++
scanf ("%f %c %f",&数字1,&运算符号,&数字2);
再这一句输入之后,你会敲一个回车来确认,然后这个回车会被 scanf("%c",&回答);读走,于是c='\n'了,所以你应该先清空缓冲区

探讨

printf("是否要退出?(y/n)");

添加 fflush(stdin); //清空缓冲区

热点排行