C语言编个小计算器

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:38:43
我刚开始学C语言,老师要我们编个有加减乘除功能的小计算器
具体要求如下:输入a开始,b结束,比如a5+1,就计算5+1,
而且要求能重复用,下面是我编的

#include <stdio.h>
void main()
{

char s;
int b,A;
char y,x;

printf("Enter:\n");
re:
scanf("%c%d",&s,&A);
if(s=='b') goto end;
printf("begin:A=%d",A);
x=getchar();
y=getchar();
scanf("%d",&b);
if(y=='+') A=A+b;
if(y=='-') A=A-b;
if(y=='*') A=A*b;
if(y=='/') A=A/b;
printf("answer is %d",A);
goto re;
end:printf("end");
}

为什么从GOTO RE;后,重新开始不管怎么输入A总等于上一回的答案,
高手帮帮忙啊
知道啊,用FOR也行,我试过了,问题不在这,在于第二次输入的数据无法存入A中

在 wdlglb - 魔法师 五级 3-22 09:55 的基础上我作了一些改动,先如下:
#include"stdio.h"
main()
{char s,x;
int a,b,c;
while(1)
{ system("cls");
printf("enter:\n");
scanf("%c",&s);
if(s=='a')
{ scanf("%d %c %d",&a,&x,&b);
if(x=='+') c=a+b;
else if(x=='-') c=a-b;
else if(x=='*') c=a*b;
else if(x=='/') c=a/b;
printf("c=%d\n",c);
getch();
}
else if(s=='b') break;
}
}

这是再次修改后的,取消了当输入不是a或者b时的处理方案,就是说如果输入不是a或者b时,从新要求输入,对其他无影响。

你自己总共才15分,哪有20分送人?

运行后输入:a5按enter,
输出:begin:A=5你就接着输入+屏幕上就会是:begin:A=5+
你再输入3按enter 结果就会出来;
你们学到了switch()吗?还有while();如果学到了解决这个问题就很好办。。如果用if goto的话很麻烦