不显示计算结果的函数
Function not displaying the answer of a calculation
我对此很陌生,我已经尝试了所有方法,但我无法让它工作,无论我进行什么更改,它都只显示 "Invalid math operation"。请帮我解决这个问题。
#include <stdio.h>
#include <math.h>
int fnCalculate (int fn, int sn);
int main()
{
int fn, sn;
char op;
printf("Enter 2 interger values and math operation [+] [-] [*] : ");
scanf("%d %d %c", &fn, &sn, &op);
printf("%d", fnCalculate(fn,sn));
getch();
return 0;
}
int fnCalculate (int fn, int sn)
{
char op;
switch(op){
case '+' : printf("%d + %d = %d", fn, sn, fn+sn);break;
case '-' : printf("%d - %d = %d", fn, sn, fn-sn);break;
case '*' : printf("%d * %d = %d", fn, sn, fn*sn);break;
default : printf("Invalid Math Operation");break;
}
}
您必须向函数发送操作字符。函数中的 op
未初始化并包含垃圾值。
void fnCalculate (int fn, int sn, char op)
{
switch(op){
case '+' : printf("%d + %d = %d", fn, sn, fn+sn);break;
case '-' : printf("%d - %d = %d", fn, sn, fn-sn);break;
case '*' : printf("%d * %d = %d", fn, sn, fn*sn);break;
default : printf("Invalid Math Operation");break;
}
}
这样称呼它:
fnCalculate(fn,sn,op);
此外,它应该 return 一个 int
值。它没有 returning 任何东西,所以那里还有另一个问题。或者将签名更改为 void
并仅调用该函数,而不是在 printf
.
中
您需要更改您的函数定义以同时接受 op
的值,并且在调用时,您需要传递 op
的值。否则,在您当前的函数中,
char op;
switch(op){
正在尝试读取调用未定义行为的未初始化自动局部变量。
我对此很陌生,我已经尝试了所有方法,但我无法让它工作,无论我进行什么更改,它都只显示 "Invalid math operation"。请帮我解决这个问题。
#include <stdio.h>
#include <math.h>
int fnCalculate (int fn, int sn);
int main()
{
int fn, sn;
char op;
printf("Enter 2 interger values and math operation [+] [-] [*] : ");
scanf("%d %d %c", &fn, &sn, &op);
printf("%d", fnCalculate(fn,sn));
getch();
return 0;
}
int fnCalculate (int fn, int sn)
{
char op;
switch(op){
case '+' : printf("%d + %d = %d", fn, sn, fn+sn);break;
case '-' : printf("%d - %d = %d", fn, sn, fn-sn);break;
case '*' : printf("%d * %d = %d", fn, sn, fn*sn);break;
default : printf("Invalid Math Operation");break;
}
}
您必须向函数发送操作字符。函数中的 op
未初始化并包含垃圾值。
void fnCalculate (int fn, int sn, char op)
{
switch(op){
case '+' : printf("%d + %d = %d", fn, sn, fn+sn);break;
case '-' : printf("%d - %d = %d", fn, sn, fn-sn);break;
case '*' : printf("%d * %d = %d", fn, sn, fn*sn);break;
default : printf("Invalid Math Operation");break;
}
}
这样称呼它:
fnCalculate(fn,sn,op);
此外,它应该 return 一个 int
值。它没有 returning 任何东西,所以那里还有另一个问题。或者将签名更改为 void
并仅调用该函数,而不是在 printf
.
您需要更改您的函数定义以同时接受 op
的值,并且在调用时,您需要传递 op
的值。否则,在您当前的函数中,
char op;
switch(op){
正在尝试读取调用未定义行为的未初始化自动局部变量。