我试图创建一个填充数组的东西,该数组中有100个介于1和100之间的随机数。当它在main函数中时,这很好用,但是当我将它放在int函数中时,没有任何输出;我刚开始就一定会错过一些简单的东西。我该怎么做才能解决此问题?

 #include "stdafx.h"
    #include <time.h>
    #include <math.h>
    #include <iostream>

int arrayer(int ar[101],  int i);

int main()
{
    srand(time(0));
    int ar[101];

    for (int i = 1; i < 101; ++i)
    {
        int arrayer(int ar[101], int i);
    }
    return 0;
}



int arrayer(int ar[101],  int i) {


    ar[i] = rand() % 100 + 1;

    if (ar[i] < 10) {
        std::cout << i << ": " << "0" << ar[i] << std::endl;
    }

    else {
        std::cout << i << ": " << ar[i] << std::endl;
    }

    return ar[i];

}

最佳答案

您正在错误地调用和声明函数。它应该是这样的:

#include "stdafx.h"
#include <time.h>
#include <math.h>
#include <iostream>

int arrayer(int ar[101],  int i);

int main() {
    srand(time(0));
    int ar[101];

    for (int i = 1; i < 101; ++i)
    {
        arrayer(ar, i);
    }
    return 0;
}

int arrayer(int* ar,  int i) {
    ar[i] = rand() % 100 + 1;

    if (ar[i] < 10) {
        std::cout << i << ": " << "0" << ar[i] << std::endl;
    }

    else {
        std::cout << i << ": " << ar[i] << std::endl;
    }

    return ar[i];
}


还要注意,您没有使用返回值,因此可以忽略不使用它。

编辑:您实际上可以替换if-else来打印此值:

std::cout << i << ": " << setw(2) << setfill('0') << ar[i] << std::endl;


您将需要包含来执行此操作。

10-07 13:29
查看更多