程序返回奇数 我正在探索C++,我有一个任务来写一个函数,它取四个整数,检查哪一个是最大的,然后返回结果< /p>
我面临的问题是程序每次都返回不同的数字 我使用在线编译器(基于web)检查GCC7.2的代码输出程序返回奇数 我正在探索C++,我有一个任务来写一个函数,它取四个整数,检查哪一个是最大的,然后返回结果< /p>,c++,C++,我面临的问题是程序每次都返回不同的数字 我使用在线编译器(基于web)检查GCC7.2的代码输出 #include <iostream> #include <cstdio> using namespace std; /* Add `int max_of_four(int a, int b, int c, int d)` here. */ int max_of_four(int a, int b, int c, int d){ int num; /
#include <iostream>
#include <cstdio>
using namespace std;
/*
Add `int max_of_four(int a, int b, int c, int d)` here.
*/
int max_of_four(int a, int b, int c, int d){
int num;
// printf ("hello world ");
int nums[] = {a,b,c,d};
for (int i = 0; i < 4; i++){
if ( nums[i]< num ){
// cout << nums[i] << endl;
;
}
else if (nums[i] > num ) {
num = nums[i];
}
}
return num;
}
int main() {
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
//cout << max_of_four(a,b,c,d);
int ans = max_of_four(a, b, c, d);
printf("%d", ans);
return 0;
}
#包括
#包括
使用名称空间std;
/*
在这里加上'int max_of_four(int a,int b,int c,int d)'。
*/
int max_of_four(int a,int b,int c,int d){
int-num;
//printf(“你好世界”);
int nums[]={a,b,c,d};
对于(int i=0;i<4;i++){
if(nums[i] //cout您尚未使用值初始化num
,因此后面在循环中的检查是针对一个随机不确定的数字进行的
int num=a;
您尚未使用值初始化num
,因此后面在循环中的检查是针对一个随机不确定的数字进行的
int num=a;
<代码> >“代码> int num,< /c> >什么值?请考虑使用,而不是使用手动循环。因为您还没有初始化Num,您可能会得到“堆栈垃圾”。因此,该值可能已经大于您的用户指定的任何值。您期望“代码> int num,< /c> >什么值开始?考虑使用而不是使用手动循环。因为您还没有初始化Num,您可能会得到“堆栈垃圾”。作为其初始值。因此该值可能已经大于用户指定的任何值。如果不允许我这样做,该怎么办?然后从num[0]开始
@tochka您需要将它设置为某个值,并且您需要保证它不大于您正在比较的任何值。如果您无法设置int num=a
,您可以执行int num=std::numeric\u limits::min;
如果包含请注意,读取未初始化的内存会使您的程序无法运行被罚款的行为。你不能保证得到一个随机数。你可以得到一个。任何事情都是可能的。int num=int\u MIN
如果明确不允许使用传入值,也会起作用。如果不允许我这样做怎么办?然后从num[0]开始
@tochka您需要将它设置为某个值,并且您需要保证它不大于您正在比较的任何值。如果您无法设置int num=a
,您可以执行int num=std::numeric\u limits::min;
如果包含请注意,读取未初始化的内存会使您的程序无法运行被罚款的行为。你不能保证得到一个随机数。你可以得到一个。任何事情都是可能的。int num=int\u MIN
如果明确不允许使用传入值,也会起作用。