永发信息网

c语言实现简单的加减乘除

答案:5  悬赏:20  手机版
解决时间 2021-11-15 19:21
  • 提问者网友:嗝是迷路的屁
  • 2021-11-15 12:18
c语言实现简单的加减乘除
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-11-15 12:23
按照你的程序运行后。。。在输入c值的时候
程序直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;
原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为
回车符不是数字形式的。
以下是我改过的程序,编译运行都很好的

#include
#include

void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
//这种情况经常遇到。。。。输入完后回车被下一个scanf("%c",&c)捕获了。
//因为回车符也是字符,所以你按回车后,程序以为是输入了c的值了
//所以加上下面一行,把回车符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
//为了好看
printf("\n");
}
全部回答
  • 1楼网友:一把行者刀
  • 2021-11-15 14:35
#include
#include

void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
printf("\n input c:");
scanf("%c",&c);
printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
}
---------------------
在每一个case后面都要加上break,否则回贯穿到下一case语句中
  • 2楼网友:英雄的欲望
  • 2021-11-15 13:28
#include
#include
#include

void main()
{
float a,b;
char c,k;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
printf("\n input c:");
cin>>c;
k=c;
printf("\n%c",c);
switch(k)
{
case '+': cout< case '-': cout< case '*': cout< case '/': cout< default: break;
}
}
这个是对的,试试。
  • 3楼网友:一叶十三刺
  • 2021-11-15 13:14
以下是修改后的程序:
#include
#include
#include

void main()
{
float a,b;
char c;

printf("input a:");
scanf("\n %f",&a);
printf("input b:");
scanf("\n %f",&b);
printf("input c:");
scanf("\n %c",&c);

switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: printf("input error\n");
}

getch();
}
  • 4楼网友:人间朝暮
  • 2021-11-15 13:07
原因是因为你输入完'b'之后,按回车,编译器会把回车键当做是'c'说输入的内容,所以会出错。
我改了一下,你可以看到可以输入并算出结果,但输入有点难看,如(2 1+),'1'和'+'之间不要加任何东西。你可以自己再想想怎么改吧,考试中。
程序如下:
#include
#include

void main()
{
float a,b;
char c;
printf("\n 请输入两个整数,一个运算符: ");
scanf("%f",&a);
scanf("%f",&b);
scanf("%c",&c);
switch(c)
{
case '+': {printf("\na+b=%f\n",a+b);break;}
case '-': {printf("\na-b=%f\n",a-b);break;}
case '*': {printf("\na*b=%f\n",a*b);break;}
case '/': {printf("\na/b=%f\n",a/b);break;}
default: break;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯