第七章:数组.ppt
文本预览下载声明
例3.有一个2×3的矩阵,求出每行最小值及每列的最小值。 for(j=0;j3;j++) {c[j]=a[0][j]; for(i=1;i2;i++) if(a[i][j]c[j]) c[j]=a[i][j]; } a数组 b数组 c数组 main( ) {int a[2][3],b[2],c[3],i, j; for(i=0;i2;i++) for(j=0;j3;j++) scanf(%d,a[i][ j]); 12 3 24 -34 56 -72 for(i=0;i2;i++) {b[i]=a[i][0]; for( j=1;j3;j++) if(a[i][ j]b[i]) b[i]=a[i][ j]; } 12 3 3 3 24 24 -34 56 56 -72 -72 -72 12 -34 -34 -34 3 56 3 56 24 -72 -72 -72 for(i=0;i2;i++) {for(j=0;j3;j++) printf(%5d,a[i][j]); printf(%5d\n,b[i]); } for(i=0;i3;i++) printf(%5d,c[i]); printf(\n); } 1 0 0 0 0 0 1 3 1 0 0 0 1 4 3 3 1 0 1 4 4 3 3 3 1 4 4 4 3 3 1 2 1 4 4 3 1 2 2 2 1 4 1 2 2 2 2 2 1 例4: 打印如下方阵 主对角线 副对角线 主对角线上元素的特点:i=j 副对角线上元素 的特点:i+j=6 ij i+j6 ij i+j6 ij i+j6 ij i+j6 main( ) {int a[7][7],i,j; for(i=0;i7;i++) for(j=0;j7;j++) if (iji+j6) a[i][j]=0; else if (iji+j6) a[i][j]=4; else if (iji+j6) a[i][j]=3; else if (iji+j6) a[i][j]=2; else if(i==j||i+j==6) a[i][j]=1; for(i=0;i7;i++) {for(j=0;j7;j++) printf(%3d,a[i][j]); printf(\n); } } 例5.任输入20个正整数,找出其中素数,并按由 小到大排好序。 main( ) {int a[20],b[20],i,j,k,m; for(i=0;i20;i++) scanf(%d,a[i]); for(i=0;i20;i++) {for( j=2;j=a[i]-1;j++) if(a[i]%j= =0) break; if(ja[i]-1) {b[k]=a[i]; k++; } } 将数组 a 中的素数找出放到数组b中 k=0; for(i=0;ik-1;i++) for(j=i+1;jk;j++) if(b[j]b[i]) {m=b[i]; b[i]=b[j]; b[j]=m; } for(i=0;ik;i++) printf(%5d,b[i]); printf(\n); } 用顺序排序法使 b 数组升序 例6.将5×6矩阵每一行按由大到小排序 main( ) {int a[5][6],i,j,k,m; for(i=0;i5;i++) for(j=0;j6;j++) scanf(%d,a[i
显示全部