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

#include<stdio.h>#include<math.h>voidmain(){floata,b;charc;printf("\ninputa:");scanf(... #include <stdio.h>
#include <math.h>

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);
case '-': printf("a-b=%f",a-b);
case '*': printf("a*b=%f",a*b);
case '/': printf("a/b=%f",a/b);
default: break;
}
}
程序出错在哪里?重谢
展开
 我来答
电子数码小百科NW
2020-02-16 · TA获得超过6492个赞
知道答主
回答量:15
采纳率:0%
帮助的人:3967
展开全部

1、打开C-Free5.0新建一个空白页面,然后将C语言的基础格式写完,注意格式缩进。如下图所示。

2、然后输入“   int a=10; float b=5,c; ”注意: float 是浮点型,int 是整型。这个是用来定义C语言中的数值的类型,还有如果一个语句结束那就要打上“;”,这个很重要,不要忘记了。上面的语句是定义了一个a 的整型数,值为10。

3、c定义的一个空白的浮点数,用来当作后面的加减后取得值。注意这里有几个注意点,可以看到一个整型的数和一个浮点数的加减乘除得到的数值都是浮点数,所以这里用%f输出c的值。

4、继续将剩下的语言补充完整如下:#include <stdio.h>main(){   int a=10;   float b=5,c,d,e,f;    c=a-b;   d=a+b;   e=a*b;   f=a/b;   printf("a-b=%f\n",c);   printf("a+b=%f\n",d);   printf("a*b=%f\n",e);   printf("a/b=%f\n",f);}。

5、这样一个简单的C语言的加减乘除算是写好了,运行看看。

Guccang
推荐于2017-09-02 · TA获得超过111个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:73.1万
展开全部
按照你的程序运行后。。。在输入c值的时候
程序直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;
原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为
回车符不是数字形式的。
以下是我改过的程序,编译运行都很好的

#include <stdio.h>
#include <math.h>

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");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QitianAAA
2010-06-28 · TA获得超过366个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:260万
展开全部
以下是修改后的程序:
#include <conio.h> /* 此头函数请不要删除 */
#include <stdio.h>
#include <math.h>

void main()
{
float a,b;
char c;
/*printf("input expression: a+(-,*,/)b \n");
scanf("%f %c %f",&a,&c,&b);*/
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(); /* 此语句请不要删除*/
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
S_B傻瓜公子
2010-06-28
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
原因是因为你输入完'b'之后,按回车,编译器会把回车键当做是'c'说输入的内容,所以会出错。
我改了一下,你可以看到可以输入并算出结果,但输入有点难看,如(2 1+),'1'和'+'之间不要加任何东西。你可以自己再想想怎么改吧,考试中。
程序如下:
#include <stdio.h>
#include <math.h>

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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5228caef0
2010-06-28
知道答主
回答量:11
采纳率:0%
帮助的人:6.5万
展开全部
#include <stdio.h>
#include <math.h>
#include <iostream.h>

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<<a+b<<endl;break;
case '-': cout<<a-b<<endl;break;
case '*': cout<<a*b<<endl;break;
case '/': cout<<a/b<<endl;break;
default: break;
}
}
这个是对的,试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式