#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无用
悬赏问题
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)
- ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。