1、输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标。
/*找出数组中的最大值并输出它所对应的下标*/ #include<stdio.h> int main(void) { int i,max,n; int a[10]; printf("输入 n:"); scanf("%d",&n); printf("请输入5个整数: ",n); /*提示输入n个数*/ for(i=0;i<n;i++) scanf("%d",&a[i]); max=0; /*假设a[0]是最大值,及下标为0的元素最小*/ for(i=1;i<n;i++) if(a[i]>a[max]) /*如果a[i]比假设的最大值还大*/ max=i; /*再假设a[i]是新的最大值,及下标为i的元素最大*/ /*输出最小值和对应的下标*/ printf("最大值是:%d 其数组下标是%d ",a[max],max); return 0; }
2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数;
/*按正序、逆序输出数据*/ #include<stdio.h> int main(void) { int i,n; int a[5]; printf("输入n:"); /*提示输入数的个数*/ scanf("%d",&n); printf("输入5个整数:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("正序输出一维数组a:"); /*提示输出数组*/ for(i=n+1;i>=0;i++){ printf("%d ",a[i]); printf(" "); } printf("逆序输出一维数组a:"); for(i=n-1;i>=0;i--){ printf("%d",a[i]); printf(" "); } return 0; }
3、定义一维数组arr,他有5个双精度浮点型元素,任意输入5个后,用冒泡排序法,由大到小排序并输出:
/*用冒泡排序法由大到小排列输出数据*/ #include<stdio.h> main() { double arr[6]; /*定义arr[0]...arr[10]*/ int i,j,t; printf("请输入5个实数: "); for(i=1;i<6;i++) scanf("%0.2f",&arr[i]); /*输入5个数分别赋给arr[1]...arr[10],arr[0]未用*/ printf(" "); for(j=1;j<=4;j++) /*外循环5-1=4次,用j做循环变量*/ for(i=1;i<=5-j;i++) /*内循环从1到5-j(分别为4...1)*/ if(arr[i]<arr[i+1]) /*完成相邻元素比较,将小数放后,大数放前*/ { t=arr[i]; arr[i]=arr[i+1]; arr[i+1]=t; } printf("有大到小的顺序是: "); for(i=1;i<=5;i++) printf("%.6f",arr[i]); }
问题:这是神马情况啊?????
4、设计一个程序,利用二维数组输出3x2矩阵,程序运行结果如下:
/*输出二维数组*/ #include<stdio.h> int main(void) { int i,j; int a[3][2]; 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++) printf("%4d",a[i][j]); printf(" "); } return 0; }
5、定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵。
/*找最小值,输出行列下标,输出矩阵*/ #include<stdio.h> int main(void) { int i,j,r=0,c=0,min; static int a[3][3]={{12,21,43},{34,10 ,56},{76,12,78}};/*定义一个数组变量,并赋值*/ /*找出最小值*/ min=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=2;j++) if(a[i][j]<min) { min=a[i][j]; /*输出最小值*/ r=i; c=j; } printf("min=%d,r=%d,c=%d ",min,r,c); return 0; }