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