第十次作业
1, 定义一个含有8个存储单元的实型数组,从键盘上接收数,然后逆序输出。 #include <stdio.h> main() { double a[8]; int i; for(i=0;i<=7;i++) scanf("%lf",&a[i]); for(i=7;i>=0;i--) printf("%f",a[i]); }
2,使用一维数组,从键盘上接收6个数,找出最大的那个元素并记录下它的下标。 #include <stdio.h> main() { double a[6],max; int i,flag; printf("输入6个数:\n"); for(i=0;i<6;i++) scanf("%lf",&a[i]); max=a[0]; flag=0; for(i=1;i<6;i++) if(a[i]>max) { max=a[i]; flag=i; } printf("最大数值%f的下标为%d\n",max,flag); }
3, 求Fibonacci数列的前10项的和。 #include <stdio.h> main() { int j[10]={1,1}; int i,sum; sum=j[0]+j[1]; for(i=2;i<10;i++) { j[i]=j[i-1]+j[i-2]; sum=sum+j[i]; } printf("sum=%d\n",sum); }
4, 编写程序,定义一个二维数组,从键盘上接收变量,并以矩阵的形式输出。 #include <stdio.h> main() { int a[4][5]; int i,j; printf("请输入20个整数:\n"); for(i=0;i<4;i++) for(j=0;j<5;j++) scanf("%d",&a[i][j]); for(i=0;i<4;i++) { for(j=0;j<5;j++) printf("%d",a[i][j]); printf("\n"); } }
5, 已知有以下语句,编写程序,求二维数组m对角线元素之和。 #include <stdio.h> main() { int i,j,sum=0; 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}}; for(i=0;i<5;i++) for(j=0;j<5;j++) if(i==j||i+j==4) sum=sum+m[i][j]; printf("sum=%d\n",sum); }
6, 编写程序,通过一维数组接收5门课程的成绩,并输出平均分。 #include <stdio.h> main() { float score[5] ,ave=0; int i; printf("请输入5门课程的成绩:\n"); for(i=0;i<5;i++) { scanf("%f",&score[i]); ave=ave+score[i]; } ave/=5; printf("Average:%.2f\n",ave) ; }
7, 编写程序,实现一维数组中前、后元素的对调。 #include <stdio.h> main() { int m[5]={23,6,12,35,17}; int i,j,k; printf("原有数据:\n"); for(i=0;i<5;i++) printf("%3d",m[i]); printf("\n"); for(i=0,j=4;i<=j;i++,j--) { k=m[i];m[i]=m[j];m[j]=k; } printf("调换后的顺序:\n"); for(i=0;i<5;i++) printf("%3d",m[i]); printf("\n"); }