的符號使用的是(即op.plus)對於枚舉不正確。這將是struct
表示法。
然而,你可以做這樣的事情:
(注,我不使用字符串,我使用char
& int
相反,他們更容易在switch()
聲明後整合。)
的#include
enum operator {
plus = '+', //add == 43
minus = '-', //minus == 45
mult = '*', //mult == 42
divi = '/', //div == 47
};
int main(void)
{
int a, b;
char op;
printf("enter \"+\", \"-\", \"*\" or \"/\"\n");
scanf("%c", &op);
printf("enter 2 integer values separated by a space, <return>\n");
scanf("%d%d", &a, &b);
switch(op) {
case plus:
printf("%d + %d == %d\n", a, b, a+b);
break;
case minus:
printf("%d - %d == %d\n", a, b, a-b);
break;
case mult:
printf("%d * %d == %d\n", a, b, a*b);
break;
case divi:
printf("%d/%d == %d\n", a, b, a/b);
break;
}
getchar();
getchar();
return 0;
}
注意,因爲這確實整數數學,像5/2的東西將== 2,而不是2.5
閱讀您的編輯,回答如下。 – ryyker