编写一个程序,显示提供加法、减法、乘法的菜单,该程序只接受菜单提供的选项,程序提示用户输入两个数字。要求是输入q退出,输入数字时有误要求重新输入,除数为零的时候报错并要求重新输入。
我的程序在正常运算时没问题,输入q退出和除数为0时程序有问题。可能是那个循环和if有问题但是不知道具体问题在哪里。
我只是个自学一个月小白求大佬带带我!!!
#include
int main()
{
float x,y,z;
char ch;
while(ch!='q')
{
printf("输入你的选项\n");
printf("a.加 b.减\nc.乘 d.除\nq.退出\n");
scanf(" %c",&ch);
if(ch!='a'&&ch!='b'&&ch!='c'&&ch!='d'&&ch!='q')
{
printf("输入选项无效重新输入\n");
continue;
}
printf("输入第一个数:");
while((scanf(" %f",&x))==0)
{
printf("这个不是数,重新输入\n");
}
printf("输入第二个数:");
while ((scanf(" %f",&y))==0)
{
printf("这个不是数,重新输入\n");
if(ch=='d'&&y==0)
{
printf("0不能作为除数请重新输入");
continue;
}
}
switch(ch)
{
case 'a':
z=x+y;
break;
case 'b':
z=x-y;
break;
case 'c':
z=x*y;
break;
case 'd':
z=x/y;
break;
case 'q':
break;
}
printf("\n结果是%.2f\n",z);
if(ch=='q')
break;
}
return 0;
}
C Primer Plus 8.8练习题 编写一个菜单,提供加减乘除的选项进行计算
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2020-02-29 21:29关注
问题解决的话,请点下
采纳
#include <stdio.h> int main() { float x,y,z; char ch; while(1) { printf("输入你的选项\n"); printf("a.加 b.减\nc.乘 d.除\nq.退出\n"); scanf(" %c",&ch); if(ch!='a'&&ch!='b'&&ch!='c'&&ch!='d'&&ch!='q') { printf("输入选项无效重新输入\n"); continue; } if (ch == 'q') break; printf("输入第一个数:"); while((scanf("%f",&x))==0) { printf("这个不是数,重新输入\n"); } printf("输入第二个数:"); while (1) { if (scanf("%f",&y)==0) printf("这个不是数,重新输入\n"); else if(y==0) { printf("0不能作为除数请重新输入"); } else break; } switch(ch) { case 'a': z=x+y; break; case 'b': z=x-y; break; case 'c': z=x*y; break; case 'd': z=x/y; break; } printf("\n结果是%.2f\n",z); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报