实验6 数组1。
1、输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标。
#include<stdio.h> int main(void) { int i,index,n; int a[10]; //定义一个有10个整型元素的数组a// printf("Enter n:"); //提示输入n// scanf("%d",&n); printf("Enter %d integers:",n); //提示输入n个数// for(i=0;i<n;i++) //有限循环,保证输入的数的个数不超过定义的n// scanf("%d",&a[i]); 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; }
2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数。
#include<stdio.h> int main(void) { int i,n; int a[10]; //定义一个有10个整型元素的数组a// printf("输入 n:"); //提示输入n// scanf("%d",&n); printf("输入 %d 个整数:",n); //提示输入n个整数// for(i=0;i<n;i++) //有限循环,数组排序// scanf("%d",&a[i]); printf("顺序输出一维数组a:\n"); //输出提示// for(i=0;i<n;i++) printf("数组元素a[%d],元素值%d\n",i,a[i]); //输出结果前缀// printf("\n"); printf("逆序输出一维数组a:\n"); //输出提示// for(i=n-1;i>=0;i--) //倒序// printf("数组元素a[%d],元素值%d\n",i,a[i]); //输出结果前缀// printf("\n"); return 0; }
3、定义一维数组arr,他有5个双精度浮点型元素,任意输入5个后,用冒泡排序法,由大到小排序并输出。
#include<stdio.h> void swap2(double*,double*); void bubble(double d[]); //定义冒泡排序法?// int main(void) { double d[5]; int i; printf("请输入5个实数:\n"); for(i=0;i<5;i++) scanf("%lf",&d[i]); bubble(d); printf("从大到小排序后:\n"); for(i=0;i<5;i++) printf("%lf\n",d[i]); return 0; } void bubble(double d[]) //开始冒泡排序// { int i,j,t; for(i=0;i<5;i++) //外部循环// for(j=0;j<5-i;j++) //内部循环// if(d[j]<d[j+1]){ //比较两个元素的大小// t=d[j];d[j]=d[j+1];d[j+1]=t; //如果前一个元素小,则交换// } }
好不容易开始运行了,但是后面三个数小数点后的数字不知道怎么就被吞掉了!!!
请告诉我这是为什么!!!
呕心沥血半个小时啊!把所有的 int a[] 替换成 double d[] 不容易啊我 QAQ
4、设计一个程序,利用二维数组输出3x2矩阵。
#include<stdio.h> int main(void) { int i,j; int a[3][2]; //定义一个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("\n"); //美观的隔行~// } return 0; }
5、定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵。
#include<stdio.h> int main(void) { int i,j; int a[3][3]; printf("输入数组arr各元素值:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("输入数组为:\n");
for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\n"); } return 0; }