实验六数组
/*输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标。*/ #include<stdio.h> int main() { int i,index,n; int a[10];/*定义一个数组*/ printf("请输入n:"); scanf("%d",&n); printf("请输入n个数\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); index=9; for(i=1;i<n;i++) if(a[i]>a[index])/*比较出最大值*/ index=i; printf("最大值是%d\t下标是%d\n",a[index],index); return 0; }
//输入n个整数,存入数组a中,分别按正序和逆序输出这些数; #include<stdio.h> int main() { int i,n; int a[10]; printf("enter n:");//输入n scanf("%d",&n); printf("enter %d integers:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("正序排列一维数组:\n"); for(i=0;i<n;i++) printf("数组元素 %d\ 数组值 %d\n",i,a[i]); printf("逆序排列一维数组:\n"); for(i=n-1;i>=0;i--) printf("数组元素 %d\ 数组值 %d\n",i,a[i]); return 0; }
//定义一维数组arr,他有5个双精度浮点型元素,任意输入5个后,用冒泡排序法,由大到小排序并输出: #include<stdio.h> int main() { int i,j; double x; double arr[5]; printf("请输入五个数:\n"); for(i=0;i<5;i++) scanf("%lf",&arr[i]); for(i=0;i<5;i++){ for(j=0;j<5-i;j++){ if(arr[j]<arr[j+1]){ x=arr[j]; arr[j]=arr[j+1]; arr[j+1]=x; } } } for(i=0;i<5;i++) printf("%lf\n",arr[i]); return 0; }
//设计一个程序,利用二维数组输出3x2矩阵 #include<stdio.h> int main() { int i,j; int a[3][2]; //给二维数组赋值 for(i=0;i<3;i++) for(j=0;j<2;j++) a[i][j]=i+j; //按矩阵的形式输出a for(i=0;i<3;i++){ for(j=0;j<2;j++) printf("%4d",a[i][j]); printf("\n"); } return 0; }
//定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵 #include<stdio.h> int main() { int i,j; double x,y; int arr[3][3]; //输入各元素 for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("输入数组arr各元素值:\n); scanf("%d",&arr[i][j]); } } x=y=0; //按矩阵形式输出找出最小值 for(i=0;i<3;i++){ for(j=0;j<3;j++){ if(arr[i][j]<arr[x][y]){ x=i; y=j; } } } for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("%4d",arr[i][j]); } printf("\n"); } printf("最小值是第%d行第%d列是%4d\n",x,y,a[x][y]); return 0; }