关于#c语言#的问题:分别求出每一列元素的总和和每一列元素的最小值

img

img


其余每个元素都是10到99之间的随机整数,分别求出每一列元素的总和和每一列元素的最小值

用rand()生成随机数,遍历统计即可,下面的代码在求最小值时跳过了对角线上的元素,因为对角线元素都是0,其他元素都是[10,99],包括对角线元素的话没有意义。
运行结果:

img

代码:

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

int main()
{
    int a[6][6]={0};
    int i,j,sum=0;
    int minVal;
    srand((unsigned int)time(0)); //生成随机数种子
    //生成矩阵并输出
    for(i=0;i<6;i++)
    {
        for(j=0;j<6;j++)
        {
            if(i==j || i+j==5) //判断是否是对角线
            {
                printf("%2d ",a[i][j]); //因为初始化为0了,所以不需要再生成
            }
            else
            {
                a[i][j] = rand()%90+10; //[10,99]
                printf("%2d ",a[i][j]);
            }
        }
        printf("\n");
    }
    //求每一列的和和最小值
    for(i=0;i<6;i++) //列
    {
        sum = 0;
        minVal = 100; //初始化
        for(j=0;j<6;j++)
        {
            sum += a[j][i]; //累加求和
            if(a[j][i] < minVal && a[j][i] != 0) //这里跳过对角线上的值,否则没有意义
                minVal = a[j][i];
        }
        printf("第%d列的和:%d,最小值:%d\n",i+1,sum,minVal);
    }
    return 0;
}