程序返回奇数 我正在探索C++,我有一个任务来写一个函数,它取四个整数,检查哪一个是最大的,然后返回结果< /p>

程序返回奇数 我正在探索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; /

我面临的问题是程序每次都返回不同的数字

我使用在线编译器(基于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;
    // 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
如果明确不允许使用传入值,也会起作用。