我正在编写一个程序来获取两个数字和一个运算符并执行计算。我以前用 Objective-C 编写过它,现在回过头来尝试用 switch 语句用 C 编写它。我不断收到以下错误消息:
“将‘double’传递给不兼容类型‘cont char *’的参数”与我调用和打印我的函数的那一行有关(就在 return 0;
之前)。我想了解真正导致此问题的原因(与只是找出解决方法相比)。我想确保我可以避免这种情况发生,无论出于何种原因。
#include <stdio.h>
double calculator(double x,char y, double z) {
switch (y) {
case '+':
return x+z;
break;
case '-':
return x-z;
break;
case '/':
return x/z;
break;
case '*':
return x*z;
break;
default:
return 0;
break;
}
}
int main(int argc, const char * argv[]) {
char y;
double x, z;
printf ("Please enter a number to be operated on\n");
scanf("%lf", &x);
printf ("Enter a valid operator\n");
scanf("%s", &y);
printf("Please enter a second number to complete the calculation\n");
scanf("%lf", &x);
printf (calculator(x,y,z));
return 0;
}
最佳答案
printf()
的原型(prototype)是
printf(const char*,...);
但是你将 double
传递给它因此错误
关于有人可以解释这个 C 错误消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083222/