由于某些原因,我的程序根本没有阅读加号,如果我这样做,这并不重要:
#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;
}
或者用开关符号切换ascii(符号)。我现在有点无能为力。我做错了什么?
编辑:粘贴整个代码
答案 0 :(得分:0)
由于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;
}
你的程序没有读取的原因是它不在循环中。您可以验证该程序是否有效:
+43
+= 43
*42
*= 1806
%37
mod 1806
30
Process finished with exit code 0