编写一个程序,显示提供加法、减法、乘法的菜单,该程序只接受菜单提供的选项,程序提示用户输入两个数字。要求是输入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;
}
采纳
#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;
}