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