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