为什么我的代码只返回一个函数?

时间:2019-01-25 09:00:45

标签: c function

我不熟悉编程(从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;



}

我真的很感激我能得到的所有建议!

2 个答案:

答案 0 :(得分:5)

这里

if(Math = 'M' || 'm')

需要更改为

if((Math == 'M') || (Math == 'm'))

因为如此,'M' || 'm'仅变成1,然后将其分配给Math,并返回结果,这意味着将使用if。进行此更改后,您实际上是将Math'M'进行比较,如果不相等,则与'm'进行比较。

else if(Math = 'A' || 'a')类似,依此类推。

答案 1 :(得分:0)

注释(=)与(==)

=是赋值运算符,它在您将值“ M”分配给Math的代码中赋值,逻辑运算符返回0或1。 在这种情况下,它返回1 因为返回1,所以控制流进入 然后将乘法结果作为输出