//Main Function of Calculator Project
int main (void)
{
int input, result, result1, result2, result3, result4;
printf ("===================================\n");
printf ( "WELCOME TO THE CALCULATOR PROJECT\n");
printf ("===================================\n\n");
printf ("Option 1. ADDITION\n");
printf ("Option 2. SUBTRACTION\n");
printf ("Option 3. MULTIPLICATION\n");
printf ("Option 4. DIVISION\n\n");
printf ("Enter Option:>> ");
scanf ("%d", &input);
switch (input)
{
case 1:
addition(result1);
printf ("Result: %d\n", addition(result1));
break;
case 2:
subtraction(result2);
printf ("Result: %d\n", subtraction(result2));
break;
case 3:
multiplication(result3);
printf ("Result: %d\n", multiplication(result3));
break;
case 4:
division(result4);
printf ("Result: %d\n", division(result1));
break;
default:
printf ("Invalid Input\n");
}
return 0;
}
当程序运行时,它会返回正确的计算结果,但无论运行什么用户函数,总是要求输入两次。
最佳答案
您正在调用要求输入并执行计算两次的函数:
case 1:
addition(result1); // You first call it here
printf ("Result: %d\n", addition(result1)); // You call it again here
break;
您还传递了一个未初始化的变量作为参数。该变量应该用于保存返回值,而不是作为参数。
因此,您调用它一次,将结果分配给一个变量,然后打印该变量。
int result = -1;
case 1:
result = addition();
break;
case 2:
result = subtraction();
break;
case 3:
result = multiplication();
break;
case 4:
result = division();
break;
default:
printf("Invalid input\n");
}
printf("Result: %d\n", result);
关于c - 函数中的scanf重复输入请求两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47323722/