【问题标题】:How can I create a multidimensional array of random integers printed using a function?如何创建使用函数打印的随机整数的多维数组?
【发布时间】:2021-05-08 07:12:23
【问题描述】:

小程序员来了!我难住了。我在作业方面需要帮助,正如我在上一个问题中得出的结论,我的教授没有帮助,我做了很多研究,但在我的书或 YouTube 中找不到任何示例或答案。在 C 中,我必须使用循环将随机整数值加载到一维数组和多维数组中,并使用函数来打印每个数组的内容。我已经自学了如何加载将随机整数转换为一维数组,但 我无法弄清楚如何将其调用到函数以打印结果。同样,我可以创建一个多维数组并通过函数打印结果,但是我不知道如何使多维数组中的整数随机化。 以下是我到目前为止创建和理解的内容(这是一个混乱,我提前感谢您的耐心等待):

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void printArray(int a[], size_t size); //prototype
void printArray(int b[2][3]); //prototype

int main(void)
{
    int n[10]; // n is an array of 10 integers
    int i;

    srand(time(NULL)); //uses time to make integers random

    printf("One-Dimensional Array\n");
    for (i = 0; i < 10; i++) //loop 10 times
    {
        n[i] = i + 1; 
        printf("%d ", (rand() % 50) + 1); //print random int from 1-100
    }

    printf("\nMulti-Dimensional Array\n");
    int array1[2][3] = { {1, 2, 3}, {4, 5, 6} };
    printArray(array1);
}

void printArray(int a[], size_t size)
{
    //insert function for printing 1d array
}
void printArray(int b[][3]) 
{
    for (size_t i = 0; i <= 1; ++i)
    {
        for (size_t j = 0; j <= 2; ++j)
        {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }
}

【问题讨论】:

  • 为什么你认为填充多维数组与填充一维数组有什么不同?只需对行和列使用嵌套循环。
  • 您的代码没有将随机整数加载到一维数组中。它正在打印随机数,但不会将它们加载到数组中。
  • 这两个函数不能使用相同的名称printArray()

标签: arrays c function multidimensional-array random


【解决方案1】:

使用嵌套循环,就像打印数组时一样。

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        array1[i][j] = rand() % 50 + 1; // random int from 1 to 50
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多