你的代码存在一些问题,我来简单解释并修正一下:
1. 在函数result的定义中,你指定了返回类型为flo ...
test.c:24:24: warning: data argument not used by format string [-Wformat-extra-args]
printf("答案是:",result(ch,num1,num2)); liyifeng295641 发表于 2023-12-30 20:02
test.c:24:24: warning: data argument not used by f ...
你在第24行的printf函数中,没有提供任何格式化字符串的占位符来接收result函数的返回值。要修复这个警告并正确输出结果,你需要在printf函数的格式化字符串中加上一个占位符:%f,以接收result函数的返回值。修改后的代码如下所示:
#include <stdio.h>
float result(char ch, float num1, float num2) {
switch (ch) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case 'x':
return num1 * num2;
case '/':
return num1 / num2;
default:
printf("无效的运算符\n");
return 0.0; // 添加默认返回值
}
}
int main() {
float num1, num2;
char ch;
printf("请输入你要计算的两个数和运算符:");
scanf("%f %c %f", &num1, &ch, &num2);
printf("答案是:%f\n", result(ch, num1, num2)); // 添加格式化字符串占位符
return 0;
}
这样修改后,程序可以正确地输出计算结果,并且不再有编译器警告。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
1
[2]