【发布时间】:2017-07-16 11:14:58
【问题描述】:
我是 C 新手,我正在尝试制作一个简单的计算器
#include <stdio.h>
#include <stdlib.h>
int main() {
int firstNumber, secondNumber, answer;
char mathSign[20];
printf("Enter first number \n");
scanf("%d", &firstNumber);
printf("Enter sign \n a - Add \n s = Subtract \n m - Multiply \n d - Divide \n");
scanf("%s", mathSign);
printf("Enter second number \n");
scanf("%d", &secondNumber);
if (mathSign == 'a') {
answer = firstNumber + secondNumber;
} else if (mathSign == 's') {
answer = firstNumber - secondNumber;
} else if (mathSign == 'm') {
answer = firstNumber * secondNumber;
} else if (mathSign == 'd') {
answer = firstNumber / secondNumber;
}
printf("Your answer is %d", answer);
return 0;
}
由于某种原因,答案总是以52 结尾。我应该让整数加倍吗?
【问题讨论】:
-
mathSign是一个数组,即一个字符串。您使用strcmp比较字符串。或者您可以将mathSign的第一个字符 与另一个字符进行比较。 -
为什么要使用 char 数组?您可以在这里简单地使用 char
-
您应该阅读编译器发出的警告。
-
使用switch case,例如使用字符串的第一个字符
-
@ManjinderSinghHanjra
char和array of char是两个不同的术语。第一个对应单个字符,第二个对应一个或多个字符的序列(这不是字符串,我错了)。
标签: c