c语言 将键盘输入的30个整型数(可以随机数产生)

img

修改后的结果:

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

/** 初始化数组的值 */
void fill_array(int *array, int row, int col) {
    for (int i=0; i< row * col; i++) {
        array[i] = rand()%100;
    }
}

/** 打印数组阵列 */
void print_array(int *array, int row, int col) {
    for (int i=0; i< row * col; i++) {
        printf("%4d", array[i]);
        if (i % col == (col-1)) {
            printf("\n");
        }
    }
}

int main(int argc, const char * argv[]) {
    int array[5][6],i,j,col_min;
    int min[6];
    fill_array(array, 5, 6);
    //求出每列最小数
    for(j=0; j<6; j++) {
        col_min = array[0][j]; // 初始化当前列的最小值,取第一个元素
        for(i=1; i<5; i++) { // 遍历列的值,从第二个元素开始
            if(array[i][j] < col_min) { // 列中的每个元素都与当前的列的最小值比较
                col_min = array[i][j]; // 更新列的最小值
            }
        }
        min[j] = col_min; // 记录列的最小值
    }
    printf("原数组为以下\n"); // 打印输出可以提取出一个函数
    print_array(array, 5, 6);
    printf("该二维数组的每一列中本列的最小数为:\n");// 打印输出可以提取出一个函数
    print_array(min, 1, 6);
    return 0;
}

注意:

  1. 变量名尽量用单词或词组来命名。单个英文单词,很难看出变量的用途。
  2. 数组,二维数组,指针,数组指针,指针数组 这几个概念要弄明白。
  3. 二维数组也可以转换成一维数组进行操作。

先把你写的错误代码贴上来,我们再帮你修改。
不要让别人替你完成作业,代码谁都会写,只是写正确了、写优秀了很难。
你要先把没有语法错误的代码写出来,然后再说能否得到正确结果的事情。
不写代码,啥都不是。


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

int main(int argc, const char * argv[]) {
    int a[5][6],i,j,x,t,mix;
    int b[6];
    mix=0;
    unsigned int seed; // 该变量未使用,应删除。
    for(i=0;i<5;i++) // 初始化二维数组,可以提取出一个函数进行。
        for(j=0;j<6;j++)
        {
            x=rand()%100;
            a[i][j]=x;
        }
    for(j=0;j<6;j++) //求出每列最小数
    {
        for(i=0;i<4;i++)
        {
            if(a[i][j]<a[i+1][j]) // 比较条件有问题,前一个比后一个小就取前一个,这是前后比较。
                mix=a[i][j];      // 应该是所有的列元素与当前最小的值比较才能求出列的最小值。
            else
                mix=a[i+1][j];
            t=mix; // 变量 t 的用途不明确,没有实际用处。
        }
        b[j]=mix;
    }
    printf("原数组为以下\n"); // 打印输出可以提取出一个函数
    for(i=0;i<5;i++)
    {
        for(j=0;j<6;j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    printf("该二维数组的每一列中本列的最小数为:\n");// 打印输出可以提取出一个函数
    for(j=0;j<6;j++)
        printf("%4d",b[j]);
    return 0;
}