用srand和rand产生随机数
100以内是指m和n的范围,还是矩阵元素值范围?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
int m,n,a[100][100],t,k;
printf("请输入矩阵行列值:");
scanf("%d%d",&m,&n);
while(m<=0 || n<=0)
{
printf("行列值必须大于0,请重新输入:");
scanf("%d%d",&m,&n);
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
a[i][j] = rand()%100+1;
printf("%4d",a[i][j]);
}
printf("\n");
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m-1;j++)
{
for(k=0;k<m-1-j;k++)
{
if(a[k][i] < a[k+1][i])
{
t = a[k][i];
a[k][i] = a[k+1][i];
a[k+1][i] = t;
}
}
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}
供参考:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 101
int main()
{
int m, n, i, j, k, t, a[N][N];
srand((unsigned int)time(NULL));
do {
scanf("%d%d", &m, &n);
} while (m <= 0 || n <= 0 || m > 100 || n > 100);
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
a[i][j] = rand() % 100 + 1;
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("按列降序排序:\n");
for (j = 0; j < n; j++) {
for (i = 0; i < m - 1; i++) {
for (k = 0; k < m - 1 - i; k++)
{
if (a[k][j] < a[k + 1][j])
t = a[k][j], a[k][j] = a[k + 1][j], a[k + 1][j] = t;
}
}
}
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++)
printf("%4d", a[i][j]);
printf("\n");
}
return 0;
}