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