实验6 数组(一)
【实验目的】
(1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法。
(2) 掌握与数组有关的算法。
【实验内容】
1. 程序分析
(1) 分析下面的程序,描述程序的功能并给出程序的运行结果。
#include <stdio.h>
#define N 7
int main()
{
int arr[N]={0,2,4,6,8,10,12},i,t;
for(i=0;i<N/2;i++)
{t=arr[i];arr[i]=arr[N-i-1];arr[N-i-1]=t;}
for(i=0;i<N;i++) printf("%d,",arr[i]);
return 0;
}
(2) 分析下面的程序,描述程序的功能并给出程序的运行结果。
#include <stdio.h>
int main()
{
int arr[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int i,sum=0;
for(i=0;i<4;i++) sum+=arr[i][i];
printf("%d\n",sum);
return 0;
}
2. 程序改错
(1) 以下程序用于求一个数组中的最大值和最小值。
程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。
#include <stdio.h>
int main()
{
int i,N=10;
double arr[N],max,min;
for(i=0;i<N;i++)
scanf("%lf",arr[i]);
max=min=arr[0];
for(i=1;i<N;i++)
if(arr[i]>max)
max=arr[i];
else
min=arr[i];
printf("max=%f,min=%f\n",max,min);
return 0;
}
3. 程序设计
(1) 学校举办演讲比赛,n个学生参加比赛,8个评委打分。
参赛选手的最终得分计算方法为:去除一个最高分和一个最低分后所得的平均分。
【要求】
- 求每位选手的比赛成绩。
- 对比赛结果进行排序
(2) 在下面的5×5魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后,检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。
17241815
23571416
46132022
101219213
11182529。