ca1ming 2022-09-29 13:25 采纳率: 100%
浏览 26
已结题

纯纯初学者,之前做了一个C语言的计算器,有什么问题吗?

#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;
}

  • 写回答

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.先写伪代码,感觉逻辑没问题了再翻译成代码,你写了一大堆,自己都绕晕了,根本搞不清干了什么

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 已采纳回答 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥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测量血氧,找不到相关的代码。