我试图创建一个填充数组的东西,该数组中有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;
您将需要包含来执行此操作。