题目请教!各位高人指点一二……
在0-100 之间随机产生6 个不同的数填入下面表中,要使得每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大(其实就是2行3列的输出)要求输出的结果是:the number is:
0 21 29 32 33 89//随机数
NO.1:
0 21 29
32 33 89
NO.2:
0 21 32
29 33 89
NO.3:
0 21 33
29 32 89
NO.4:
0 29 32
21 33 89
NO.5:
程序代码:
我的程序代码如下: #include <stdlib.h> #include <stdio.h> #include <time.h> void fenzu(int array[6])// 分组函数把产生的随机数分给数组 { int i; srand((int) time(0)); for(i=0;i<6;i++) { array[i]=rand()%101; printf("%d ",array[i]);} } void sort(int c[6])// 排序 { int j,t,m,n,l,i; int d[3]; int e[3]; for(i=0;i<6;i++) { printf("No.%d:\n ",i); for(j=0;j<6;j++) { srand((int) time(0)); i=rand()%6; if(j<=2) d[m++]=c[i]; if(j>2) e[n++]=c[i]; } if(d[0]>d[1]) //d[]组排序 {t=d[0];d[0]=d[1];d[1]=t;} if(d[0]>d[2]) {t=d[0];d[0]=d[2];d[2]=t;} if(d[1]>d[2]) {t=d[1];d[1]=d[2];d[2]=t;} if(e[0]>e[1]) //e[]组排序 {t=e[0];e[0]=e[1];e[1]=t;} if(e[0]>e[2]) {t=e[0];e[0]=e[2];e[2]=t;} if(e[1]>e[2]) {t=e[1];e[1]=e[2];e[2]=t;} for(i=0;i<=2;i++) //d[]组e[]组上下对应排序 if(d[i]>e[i]) {l=d[i];d[i]=e[i];e[i]=l;} for(j=0;j<=2;j++) {printf("%d ",d[j]);printf("\n");printf("%d ",e[j]);} } } void main() { int a[6]; printf("the number is:\n"); fenzu(a); printf("\n"); sort(a); } 为什么不可以呢?
0 29 33
21 32 89