1、输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标。
#include<stdio.h> int main() { int i,index,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]); index=0; /*假设下标为0的元素最小*/ for(i=1;i<n;i++) if(a[i]<a[index])/*如果a[i]比假设的最小值还小*/ index=i;/*再假设a[i]是新的最小值,即下标为i的元素最小*/ /*输出最小值和下标*/ printf("min is %d sub is %d ",a[index],index); return 0; }
2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数;
#include<stdio.h> int main(void) { int i,index,k,n,temp; int a[10];/*定义1个数组啊,它有10个元素*/ printf("Enter n:");/*提示输入n*/ scanf("%d",&n); printf("Enter %d integers:",n);/*提示输入n个数字*/ for(i=0;i<n;i++) scanf("%d",a[i]);/*将输入的数一次赋给a[0],a[1]...a[9]*/ /*对n个数排序*/ for(k=0;k<n-1;k++){ index=k;/*index存放最小的值*/ 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("After sorted:");/*输出数组*/ for(i=0;i<n;i++) printf("%d",a[i]); printf(" "); printf("After sorted");/*正排序*/ for(i=n-1;i>=0;i=i-1) printf("%d",a[i]);/*逆排序*/ printf(" "); return 0; }
3、设计一个程序,利用二维数组输出3x2矩阵,程序运行结果如下:
#include<stdio.h> int main(void) { int i,j; int a[3][2]; /*将输入的数存入二维数组*/ printf("Enter 6 integers: ");/*提示输入6个数*/ for(i=0;i<3;i++) for(j=0;j<2;j++) scanf("%d",&a[i][j]); /*按矩阵的形式输出二维数组*/ for(i=0;i<3;i++){ for(j=0;j<2;j++) printf("%4d",a[i][j]); printf(" "); } return 0; }
4.定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵
运行结果
#include<stdio.h> int main(void) { int col,row,i,j; int a[3][3]; /*将输入的数存入二维数组*/ printf("Enter 9 integers: ");/*提示输入6个数*/ for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); /*按矩阵的形式输出二维数组*/ for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%4d",a[i][j]); printf(" "); } row=col=0;/*设定a[0][0]是最大值*/ for(i=0;i<3;i++) for(j=0;j<3;j++) if(a[i][j]<a[row][col]){/*如果a[i][j]比假设的大*/ row=i; col=j;/*在假设a[i][j]是新的最大值*/ } printf("min=a[%d][%d]=%d ",row,col,a[row][col]); return 0; }