c语言 上机实验3 数组的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]);

}

//查询

相关文档
最新文档