我正在尝试为函数maximum写一个函数定义,它返回三个整数中最大的一个。但它并没有回归最大的。
这是我的代码:
int maximum( int x, int y, int z ) {
int max = x;
if ( y > max )
max = y;
if ( z > max )
max = z;
return max;
}
int main() {
maximum(3, 2, 1);
return 0;
}
答案 0 :(得分:2)
您的maximum(3, 2, 1)
调用结果将被忽略(因为您未使用该结果)。优化编译器可以自由地忽略该结果,甚至可以避免调用maximum
。
BTW我发现max3
对于这样的函数来说是一个更好的名称。
至少,你应该打印这样一个函数调用的结果。所以添加
printf("max is %d\n", maximum(3, 2, 1));
在return 0;
main
之前(当然,在源代码的开头需要#include <stdio.h>
)。
提示新手:始终使用换行符printf
结束\n
格式字符串,或者调用fflush(NULL)
,否则您会收到令人不快的意外,因为{{1缓冲了!
你真的应该阅读一些关于编程的更多资料(或者关于用C编程的资料)。您应该在编译器中启用警告消息。您应该学习如何使用调试器。如果您使用的是Linux,请使用stdout
进行编译,并了解如何使用gcc -Wall -g
调试器。因此,如果您的源文件是gdb
,则可以使用
max3homework.c
命令,您可以通过运行gcc -Wall -g max3homework.c -o max3hw
对其进行测试,然后运行./max3hw
进行调试,然后键入适当的命令gdb max3hw
。