第十次作业
1.定义一个8个储存单元的实型数组,从键盘上接收数,然后逆序输出。 #include<stdio.h> main(){ int i; double a[8]; printf("请输入8个数\n"); for(i=0;i<8;i++) scanf("%lf",&a[i]); for(i=7;i>=0;i--) printf("%.2f",a[i]); }
2.使用一组数组,从键盘上接收6个数,找出最大的,并记录它的下标。 #include<stdio.h> main(){ int a[6],i,max,maxidx; printf("请输入6个数\n"); for(i=0;i<6;i++){ scanf("%d",&a[i]); if(a[i]>max){ max=a[i]; maxidx=i; } }printf("最大的为%d,下标为%d",max,maxidx);
3.求fibonacci数列的前10项和。 #include<stdio.h> main(){ int a[10],i,sum; a[0]=1; a[1]=1; sum=a[0]+a[1]; for(i=2;i<10;i++){ a[i]=a[i-1]+a[i-2]; sum+=a[i]; } printf("和为%d",sum); }
4.定义一个二维数组,从键盘上接收变量,并以矩阵的形式输出。 #include<stdio.h> main(){ int a[2][3],i,j; printf("请输入6个数\n"); for(i=0;i<=1;i++){ for(j=0;j<=2;j++) scanf("%d",&a[i][j]); }for(i=0;i<=1;i++){ for(j=0;j<=2;j++) printf("%-3d",a[i][j]); printf("\n"); } }
5、编写程序,求二维数组m对角线之和 #include <stdio.h> main() { int m[5][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}}; int i,j,sum=0; for ( i=0;i<5;i++ ) { for ( j=0;j<5;j++ ) { if ( i==j||i+j==4 ) { sum+=m[i][j]; } } } printf ( "对角线的和:%d\n",sum );
6、编写程序,通过一维数组接收5门课程的成绩,并输出平均分数 #include <stdio.h> main() { int a[5]; int i,sum=0; double avg; for ( i=0;i<5;i++ ) { printf ( "please enter the %d number for score:",i+1 ); scanf ( "%d",&a[i] ); sum+=a[i]; } avg=sum/5.0; printf ( "the average of score is %f\n",avg ); }
7、编写程序,实现一位数组中前、后元素的对调 #include <stdio.h> main() { int a[5]; int i,j,b; for ( i=0;i<5;i++ ) { printf ( "please enter the %d number:",i+1 ); scanf ( "%d",&a[i] ); } for ( i=0;i<4;i++ ) { for ( j=0;j<4-i;j++ ) { if ( a[j]>a[j+1] ) { b=a[j]; a[j]=a[j+1]; a[j+1]=b; } } } printf( "the last\n" ); for ( i=0;i<5;i++ ) { printf("%d\n",a[i]); } }