将多个整数存储到数组中并打印出来

Storing a number of integers into array and printing them out

本文关键字:打印 数组 整数 存储      更新时间:2023-10-16

如何使用for循环创建一个函数,将给定范围的数字存储到数组中,然后在主程序中调用该函数并打印出数组中存储的元素?

int main ()
{
    testing(array, 20);
}
int testing(int array[], int k)
{
    for (int i = 0; k < 20; i++)
    {
        array[k] = i;
        k++;
    }
    for (int j = 0; j < 20; j++)
    {
        cout << array[j] << endl;
    }
}
我得到错误,

"测试必须返回值",我知道我应该有返回变量;例如。但是,我不知道如何返回给定元素的数组以使用 for 循环打印出所有元素。

您的函数和循环构造没有经过精心设计。您可以使用指针,而不必返回数组。我认为这就是您要做的:

#include <iostream>    
void testing(int* a, int k)
{
    for (int i = 0; i < k; i++)
        a[i] = i;
}
int main()
{
    int a[20];
    testing(a, 20);
    // you can see that a's elements have changed outside the main (in testing)
    for (int j = 0; j < 20; j++)
        std::cout << a[j] << "n";
    return 0;
}

你似乎从来没有执行过第一个循环。第一个循环的停止条件是 k < 20 ,但 k 已经是 20。然后在第二个循环中,数组只打印出以前保存在这些内存位置的垃圾。

我想你的意思是:

for (int i= 0; i < k; i++) {
    array[i] = i;
}
for (int j = 0; j < k; ++j)  {
    cout << array[j] << endl;
}

如果要在 main 中打印数组,则需要通过传入指向数组而不是数组本身的指针来稍微更改函数。

此外,main函数从未初始化数组以传递到函数中。

int main (void) {
    int a[20];
    testing (a, 20);
    return 0;
}

最后,将testing函数的返回类型设置为 void

void testing (int array[], int k);

总而言之,它应该看起来像这样:

#include <iostream>
using namespace std; // I don't recommend doing this
void testing (int * array, const int k);
int main (void) {
    const int size = 20;
    int a[size] = {0};
    testing (a, size);
    for (int i = 0; i < size; ++i) {
        cout << a[i] << endl;
    }
    return 0;
}
void testing (int * array, const int k) {
    for (int i = 0; i < k; ++i) {
         array[i] = i;
    }
}