#include<stdio.h>
int main()
{
int num1, num2, sum;
char ys, a;
int i, j, cf, t;
i = 0;
j = 0;
printf("请输入数字。\n");
for (;;)
{
scanf("%d%c%d", &num1, &ys, &num2);
if (ys == '+')//加法
{
sum = num1 + num2;
}
else if (ys == '-')//减法
{
sum = num1 - num2;
}
else if (ys == '')//乘法
{
sum = num1 * num2;
}
else if (ys == '/')//除法
{
sum = num1 / num2;
}
else if (ys == '^')//次方
{
i = num2;
cf = num1;
for (i; i > 1; i--)
{
sum = cf * num1;
cf = sum;
}
}
else if(ys!='^'&&ys!='/'&&ys!=''&&ys!='-'&&ys!='+')//输入其他符号
{
printf("您输入的符号错误,请重新输入。\n");
t=1;
continue;
}
else
{
printf("%d\n", sum);
}
for(t; t>1; i--)
{
printf("继续请输入o或退出请输入x。\n");
}
scanf("%c", &a);
if (a == 'o')//继续
{
printf("请输入数字。\n");
i++;
continue;
}
else if (a == 'x')//退出
{
return 0;
}
}
return 0;
}

纯纯初学者,之前做了一个C语言的计算器,有什么问题吗?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 於黾 2022-09-29 13:44关注
你这代码问题多了
1.除法没有判断除数不为0
2.该用switch要用switch,不要写一大堆if,else,而且你最后一个if改为else多好,这么写不累吗,改switch那么最后一个if可以用default代替
3.乘方可以调用pow来做
4.for(t; t>1; i--)这是啥玩意,标准死循环
5.先写伪代码,感觉逻辑没问题了再翻译成代码,你写了一大堆,自己都绕晕了,根本搞不清干了什么本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用