11.16作业
1.定义一个含有8个存储单元的实型数组,从键盘上接收数,然后逆序输入.
#include<stdio.h> main() { int a[8],i; for(i=0;i<=7;i++) scanf("%d",&a[i]); for(i=7;i>=0;i--) printf("%2d",a[i]); }

2.使用一维数组,从键盘上接收6个数,找出最大的那个元素并记录下他的下标.
#include<stdio.h> main() { double a[6],max; int i,m; printf("请输入6个数:"); for(i=0;i<=5;i++) scanf("%lf",&a[i]); max=a[0]; m=0; for(i=1;i<=5;i++) if(a[i]>max) { max=a[i]; m=i; } printf("最大数值%f的下标为%d\n",max,m); }

3.求Fibonacci数列的前10项的和.
#include<stdio.h> main() { int a[10]={1,1}; int i,sum; sum=a[0]+a[1]; for(i=2;i<=9;i++) { a[i]=a[i-1]+a[i-2]; sum+=a[i]; } printf("sum=%d\n",sum); }

4.编写程序,通过一维数组接收5门课程的成绩,并输出平均分数.
#include<stdio.h> main() { float a[5],ave=0; int i; printf("输入5门成绩:"); for(i=0;i<=4;i++) { scanf("%f",&a[i]); ave+=a[i]; } ave/=5; printf("Average:%.2f\n",ave); }

7.编写程序,实现一维数组中前.后元素的对调
#include<stdio.h>
main()
{
int m[7]={31,52,47,69,81,23,74};
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");
}

8.编写程序,求二维数组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<=4;i++) for(j=0;j<=4;j++) if(i==j||i+j==4) sum+=m[i][j]; printf("sum=%d\n",sum); }

9.编写程序,定义一个二维数组,从键盘上接受变量,并以矩阵的形式输出
#include<stdio.h> main() { int a[3][4]; int i,j; printf("请输入12个整数:\n"); for(i=0;i<=2;i++) for(j=0;j<=3;j++) scanf("%d",&a[i][j]); for(i=0;i<=2;i++) { for(j=0;j<=3;j++) printf("%4d",a[i][j]); printf("\n"); } }

浙公网安备 33010602011771号