/*找出数组的最小值和它所对应的下标*/
#include<stdio.h> int main(void) { int i,index,n; int a[10]; /*数组长度上限是10*/ printf("enter n:"); /*提示输出*/ scanf("%d",&n); printf("enter %d integers:",n); /*提示输入n个数字*/ for(i=0;i<n;i++) scanf("%d",&a[i]); /*找最大值a[index]*/ index=0; /*假设a[0]是最小值,即下标为0的元素的最小*/ for(i=1;i<n;i++) if(a[i]>a[index]) /*如果a[i]比假设的最小值大*/ index=i; /*再假设a[i]是新的最大值,即下标为i的元素最小*/ printf("max is %d\tsub is %d\n",a[index],index); return 0; }
/*分别按正序和逆序排列n个数*/ #include<stdio.h> int main(void) { int i,n,a[10]; printf("输入n:"); scanf("%d",&n); for(i=0;i<n;i++){ printf("enter a:"); scanf("%d",&a[i]); } for(i=0;i<n;i++){ /*正序排列输出*/ printf("数组元素a[%d],元素值%d\n",i,a[i]); } printf("\n"); for(i=n-1;i>=0;i--){ /*逆序排列输出*/ printf("数组元素a[%d],元素值%d\n",i,a[i]); } return 0; }
/*按矩阵的形式输出二维数组*/ #include<stdio.h〉 int main(void) { int i,j; int a[3][2]; /*定义1个二维数组a*/ for(i=0;i<3;i++) /*行下标是外循环的循环变量*/ for(j=0;j<2;j++) /*列下标是内循环的循环变量*/ a[i][j]=i+j; /*给数组元素赋值*/ for(i=0;i<3;i++){ /*针对所有行的循环*/ for(j=0;j<2;j++) /*输出第i行的所有元素*/ printf("%4d",a[i][j]); printf("\n"); } return 0; }
/*选择排序法*/ #include<stdio.h> int main(void) { int i,index,k,n,temp; int a[10]; printf("enter n:"); scanf("%d",&n); printf("enter %d integers:"); for(i=0;i<n;i++) /*将输入数依次赋给数组a的n个元素a[0]~a[n-1]*/
scanf("%d",&a[i]); for(k=0;k<n-1;k++){ index=k; for(i=k+1;i<n;i++) if(a[i]>a[index]) index=i; temp=a[index]; a[index]=a[k]; a[k]=temp; } printf("从大到小:"); for(i=0;i<n;i++) printf("%d",a[i]); printf("\n"); return 0; }