1, 已知数组x有5个元素{8.16.13.19.10},精组y有6个元素{24.19.28.15.17.20}.请分别对x和y排序。输出x和y排序后的元素
#include<stdio.h> main() { int x[5]={8,16,13,19,10},y[6]={24,19,28,15,17,20}; int i,j,sum=0; for(i=0;i<4;i++) { for(j=i+1;j<=4;j++) if(x[i]<x[j]){x[sum]=x[i];x[i]=x[j];x[j]=x[sum];} for(i=5;i>=0;i--) { for(j=i-1;j>=1;j--) if(y[i]<y[j]){y[sum2]=y[i];y[i]=y[j];y[j]=y[sum2];} for(i=0;i<=4;i++) printf("%d\t",x[i]); printf("\n"); for(i=0;i<=5;i++) printf("%d\t";i++); printf("\n"); }
CODE:
[Copy to clipboard]
2, 已知一个数组有10个元素,值分别为3.6.8.4.5.66.80.72.69.70将数组元素逆置后输出(第一个与最后一个换,第二个与倒数二个换)
#include<stdio.h> main() { int a[10]={3,6,8,4,5,66,80,72,69,70}; int i,j,sum; for(i=0;i<=9;i++) { for(j=9;j>=i;j--) a[sum]=a[i];a[i]=a[j];a[j]=a[sum]; } for(i=0;i<=9;i++) printf("%d\t",a[i]); }
CODE:
[Copy to clipboard]
3, 输入6个整数存入一个数组a,输入4个整数存入另一个数组b,输出所有a中有而b中没有的元素值.
#include<stdio.h> main() { int a[6],b[4]; int i,j,sum; for(i=0;i<=5;i++) scanf("%d",&a[i]); for(i=0;i<=3;i++) scanf("%d",&b[i]); for(i=0;i<=5;i++) for(j=0;j<=3;j++) {if(a[i]!=b[j]&&j==3) (printf("%d\t",a[i]);)} }
CODE:
[Copy to clipboard]
4, 已知一个数组有10个元素,值分别是11.12.13.14.15.16.17.18.19.20。现将每个元素向后移一个位置,最后的元素移到开头。输出数组的所有元素.(定义一个具有11个元素的数组,最后一个位置空着。由后向前逐个将元素后移一个位置。最后的元素移到开头位置。)
#include<stdio.h> main() { int a[11]={11,12,13,14,15,16,17,18,19,20,} int i,j,t; a[t]=a[10]; for(i=10;i>=0;i--) a[i]=a[i-1]; a[0]=a[t]; int(i=0;i<=9;i++) printf("%d\t"); }
CODE:
[Copy to clipboard]
5. 已知一个二维数组:{{14.26.18.17},{24.37.21.8},{19.31.22.16},{7.19.14.26}},输出主对角元素的和。
#include<stdio.h> main() { int a[4][4]; int i,j,sum=0; for(i=0,j=0;i<=3;i++) a[sum]+=a[i][j] j++; } printf("%d",a[sum]); }
CODE:
[Copy to clipboard]
6. 已知一个二维数组:{{14.26.18.17},{24.8.21.37},{19.31.22.16},{7.8.11.9}},将每行元素都加上该行上的主对角元素,然后求出最大元素的下标.
#include<stdio.h> main() { int a[4][4]={{14,26,18,17},{24,8,21,37},{19,31,22,16},{7,8,11,9}} int i,j,x; int sum=0,sum1=0,sum2=0; for(i=0,x=0;i<=3;i++) { a[sum]=a[i][x]; for(j=0;j<=3;j++) a[i][j]=a[i][j]+a[sum]; x++;} sum=a[0][0]; for(i=0;i<=3;i++) for(j=0;j<=3;j++) { if(sum<a[i][j]) { sum=a[i][j]; sum1=i;sum2=j; } } printf("最大数的坐标为%d,%d",sum1,sum2) }
CODE:
[Copy to clipboard]
7.已知一个二维数组:14.26.18.17},{24.8.21.37},{19.31.22.16},{7.8.11.9}},将每行的最大元素求出组成一个一维数组,输出该一维数组中的元素.
#include<stdio.h> main() { int a[4][4]={{14,26,18,17},{24,8,21,37},{19,31,22,16},{7,8,11,9}} int b[4]; int i,j; int sum=0; sum=a[0][0]; for(i=0;i<=3;i++) { for(j=0;j<=3;j++) { if(sum<a[i][j]){sum=a[i][j];} } b[i]=sum; } for(i=0;i<=3;i++) printf("%d\t"b[i]); printf("\n"); }
|