用C语言switch语句做一年级算术题。
答案:2 悬赏:40 手机版
解决时间 2021-03-31 22:39
- 提问者网友:戎马万世
- 2021-03-31 02:45
用C语言switch语句做一年级算术题。
最佳答案
- 五星知识达人网友:野味小生
- 2021-03-31 04:02
#include // fgets, printf
#include // isdigit, isblank
#include // atoi
int main( )
{
int a, b, c, op;
char buf[256] = {0};
int i;
// handle input
fgets(buf, 255, stdin);
a = atoi(buf);
i = 0;
if (buf[i] == '-')
i++;
while (buf[i] && isdigit(buf[i]))
i++;
while (buf[i]) {
if (buf[i] == '+' ||
buf[i] == '-' ||
buf[i] == '*' ||
buf[i] == '/' ||
buf[i] == '%') {
op = buf[i++];
break;
}
i++;
}
while (buf[i] && isblank(buf[i]))
i++;
b = atoi(&buf[i]);
// calculate
switch(op) {
case '+':
c = a+b;
break;
case '-':
c = a-b;
break;
case '*':
c = a*b;
break;
case '/':
c = a/b;
break;
case '%':
c = a%b;
break;
default:
c = 0;
break;
}
printf("%d
", c);
}追问运行输出为什是0追答我运行没问题呀,你自己看看吧
另外,1-1的话就是0呀:)追问是我弄错了
#include
#include
int main( )
{
int a, b, c, op;
char buf[256] = {0};
int i;
// handle input
fgets(buf, 255, stdin);
a = atoi(buf);
i = 0;
if (buf[i] == '-')
i++;
while (buf[i] && isdigit(buf[i]))
i++;
while (buf[i]) {
if (buf[i] == '+' ||
buf[i] == '-' ||
buf[i] == '*' ||
buf[i] == '/' ||
buf[i] == '%') {
op = buf[i++];
break;
}
i++;
}
while (buf[i] && isblank(buf[i]))
i++;
b = atoi(&buf[i]);
// calculate
switch(op) {
case '+':
c = a+b;
break;
case '-':
c = a-b;
break;
case '*':
c = a*b;
break;
case '/':
c = a/b;
break;
case '%':
c = a%b;
break;
default:
c = 0;
break;
}
printf("%d
", c);
}追问运行输出为什是0追答我运行没问题呀,你自己看看吧
另外,1-1的话就是0呀:)追问是我弄错了
全部回答
- 1楼网友:西风乍起
- 2021-03-31 05:19
会if语句吗?换成case就可以了追问不会
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯