【发布时间】:2019-01-25 09:00:44
【问题描述】:
我是编程新手(从 C 开始),并尝试通过构建一个计算器来练习函数。但即使没有调用它的 If-Statement,它也只会返回相同的函数。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int result;
int multiplication(int num1, int num2){
result = num1 * num2;
return result;
};
int addition(int num1, int num2){
result = num1 + num2;
return result;
};
int substraction(int num1, int num2){
result = num1 - num2;
return result;
};
int main(){
int num1;
int num2;
char Math;
printf("Do you want to do a Multiplication or an Addition, or a Substraction: ");
scanf("%c", &Math);
printf("Now give me a Number: ");
scanf("%d",&num1);
printf("Now give me another Number: ");
scanf("%d",&num2);
if(Math = 'M' || 'm'){
printf("Your Mulitplication came out to %d", multiplication(num1,num2));
}
else if(Math = 'A' || 'a'){
printf("Your Addition came out to %d", addition(num1, num2));
}
else if(Math = 'S' || 's'){
printf("Your Substraction came out to %d", substraction(num1, num2));
}
else{
printf("Your Input was wrong");
};
return 0;
}
我非常感谢我能得到的每一个建议!
【问题讨论】:
-
我发现了一些东西。 1)“=”是一个赋值运算符。您想在 if 语句中使用“==”。 2) 比较 Var 是 'X' 还是 'Y' 你需要做 "Var== 'X' || Var == 'Y'
-
这些对于初学者来说是非常常见的错误,并且经常出现在这里 - 例如。 :If statements not working?,Why is if statement not working
-
您应该始终在编译器中启用警告。对于 GCC,您可以使用 -Wall -Wextra。这可能会向您显示一些警告“条件分配”或类似的。请始终注意所有警告。