c语言 上机实验3 数组的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计实验报告
实验三使用数组的程序设计
班级 2012196 学号 201219613 姓名刘欢
一、实验目的
(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。
(2)掌握字符数组的使用。
(3)掌握与数组有关的算法。
二、实验内容及步骤
1、检验并打印幻方矩阵
在下面的5*5阶幻方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
程序代码:
#include
void main()
{
int
a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25 ,2,9}};
int i,j,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
int sum6=0,sum7=0,sum8=0,sum9=0,sum10=0,sum11=0,sum12=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
for(j=0;j<5;j++)
{
sum1=sum1+a[0][j];
sum2=sum2+a[1][j];
sum3=sum3+a[2][j];
sum4=sum4+a[3][j];
sum5=sum5+a[4][j];
}
for(i=0;i<5;i++)
{
sum6=sum6+a[i][0];
sum7=sum7+a[i][1];
sum8=sum8+a[i][2];
sum9=sum9+a[i][3];
sum10=sum10+a[i][4];
}
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(i==j)
sum11=sum11+a[i][j];
if(i+j==4)
sum12=sum12+a[i][j];
}
if(sum1==sum2&&sum2==sum3&&sum3==sum4
&&sum4==sum5&&sum5==sum6&&sum6==sum7&&
sum7==sum8&&sum8==sum9&&sum9==sum10&&sum10==sum11&&sum11==sum12) printf("是幻方矩阵");
else
printf("不是幻方矩阵");
}
输出结果
2、完成以下程序,并进行调试
某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试,考试后要求:1)计算每个学生的总分和平均分;
2)按总分成绩由高到低排出成绩的名次;
3)打印出名次表,表格内包括学生学号、各科分数、总分和平均分;
4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。
【提示】:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。
程序代码:
#include
void main()
{
int score[3][30],sum[30],num[30],i,j,m,n,t,mc[30];
float aver[30];
printf("输入学生的总数,不能大于30: n\n");
scanf("%d",&n);
printf("输入学生的成绩:数学英语计算机,按学号输入每个学生的成绩,每个学生输入三科成绩,不许有空。\n");
for(i=0;i for(j=0;j<3;j++) scanf("%d",&score[i][j]);//学生成绩 for(i=1;i<=n;i++) num[i]=i;//学号 //下面计算总成绩和平均成绩 for(i=0;i { for(j=0,t=0;j<3;j++) { t=t+score[i][j];//总成绩 } sum[i]=t; aver[i]=sum[i]/3;//平均成绩 } //下面排名次 for(i=0;i mc[i]=sum[i]; for(i=0;i for(j=0,t=0;j if(mc[j] { t=mc[j]; mc[j]=mc[j+1]; mc[j+1]=t; } //输出表格 printf("学号,数学,英语,计算机,总分,平均分:\n"); for(i=0,t=0;i { printf("%5d,%5d,%5d,%5d,%5d,%8.2f\n", num[i+1],score[i][0], score[i][1],score[i][2],sum[i],aver[i]); } //查询