用随机数填充数组&打印到屏幕

时间:2014-04-04 23:40:20

标签: c arrays

我是初学者,尝试用随机数填充3x5 2D数组,然后在屏幕上显示高,低和平均值。我无法将我的阵列打印到屏幕上。有人可以帮忙吗?

#include <stido.h>
#include <math.h>
#include <time.h>

int main (void){
    int array [3][5];
    int practice_array;
    int i, row, col;

    srand(time(NULL));

    for ( row = 0; row < 3; row +1){

      for ( col = 0; col < 5; col +1){

        array[row][col] = (rand()%10000) + 1;
      }
    }
    practice_array = array[row][col];
    printf("%d", array[row][col]);
    return (0);
}

3 个答案:

答案 0 :(得分:3)

您有3个主要问题:

1。正如Jongware在评论中所说,printf应该在循环中,而不是在外面。

2。 #include <stido.h>不存在,它是#include <stdio.h>

3。 row +1应为row = row + 1row += 1row++++row(在这种情况下,我们通常使用row++++row)。当然,您需要对col

执行相同的操作


次要的:

a。 practice_arrayi在这里毫无用处。

b。您可能忘记了\n中的printf


我更正了您的代码+我添加了最小值,最大值和平均值:

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

#define ROWS_NB 3
#define COLS_NB 5
#define MIN_VAL 1
#define MAX_VAL 10000

int main(void)
{
    int array[ROWS_NB][COLS_NB];
    int row;
    int col;
    int val;
    int min = MAX_VAL;
    int max = MIN_VAL;
    int avg = 0;

    srand(time(NULL));

    for (row = 0; row < ROWS_NB; ++row)
    {
        for (col = 0; col < COLS_NB; ++col)
        {
            val = (rand() % (MAX_VAL - MIN_VAL)) + MIN_VAL;
            if (val < min)
                min = val;
            else if (val > max)
                max = val;
            avg += val;
            array[row][col] = val;
            //printf("%d ", val);/* uncomment if you want to print the array */
        }
        //printf("\n");/* uncomment if you want to print the array */
    }
    avg /= ROWS_NB * COLS_NB;
    printf("min: %d\nmax: %d\naverage: %d\n", min, max, avg);
    return (0);
}

答案 1 :(得分:1)

你不能像这样打印数组。每个元素都必须由它自己打印。

for ( row = 0; row < 3; row++){ for ( col = 0; col < 5; col++){ printf ("%d ", array[row][col]); } }

答案 2 :(得分:0)

我为您修复的代码中有各种各样的内容。

您想要包含的库是stdio.h col和row的值未正确更新 并且printf语句需要进入循环并打印每个值,因为它是popul

include <stdio.h>
include <math.h>
include <time.h>

int main (void)
{
    int array [3][5];
    int i, row, col;

    srand(time(NULL));

    for ( row = 0; row < 3; row++)
    {
        for ( col = 0; col < 5; col++)
        {
            array[row][col] = (rand()%10000) + 1;
            printf("%d ", array[row][col]);
        }
        printf("\n");
    }
    return (0);
}