[英]Plus sign isn't read
For some reason my program doesn't read plus sign at all and it doesn't matter if I do it this way: 出于某种原因,我的程序根本不会读取加号,并且如果我这样做,也没关系:
#include <stdio.h>
#include <math.h>
int main (){
int nextInt,number,boolean;
char sign;
scanf("%d", &number);
boolean = 1;
while(boolean == 1){ //+43 *42 %37
scanf("%c %d", &sign, &nextInt);
switch ((int)sign){
case 43:{ number += nextInt; printf("+= %d\n", number); break;}
case 42:{ number *= nextInt; printf("*= %d\n", number); break;}
case 37:{ printf("mod %d\n", number);
number %= nextInt;
boolean = 0; break;}
}
}
printf("%d", number);
return 0;
}
Or switch ascii with symbols for switch (sign). 或者用带有用于开关(符号)的符号的开关ASCII。 I'm kinda clueless what is really the source of the problem right now.
我有点头绪,什么才是真正的问题根源。 What am I doing wrong?
我究竟做错了什么?
EDIT: Entire code pasted 编辑:粘贴整个代码
Since 1806 % 37 = 30, you can verify that the following works. 由于1806%37 = 30,因此您可以验证以下各项是否有效。
#include <stdio.h>
int main (){
int nextInt=0;
int number=0;
int boolean;
char sign;
boolean = 1;
while(boolean == 1){ //+43 *42 %37
scanf(" %c %d", &sign, &nextInt);
switch (sign){
case '+':{ number += nextInt; printf("+= %d\n", number); break;}
case '*':{ number *= nextInt; printf("*= %d\n", number); break;}
case '%':{ printf("mod %d\n", number);
number %= nextInt;
boolean = 0; break;}
}
}
printf("%d", number);
return 0;
}
The reason your program didn't read plus is that it wasn't in the loop. 您的程序未读加的原因是它不在循环中。 You can verify that the program works:
您可以验证程序是否正常运行:
+43
+= 43
*42
*= 1806
%37
mod 1806
30
Process finished with exit code 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.