实验4数组

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验4.数组---10043 学生成绩管理

1.【问题描述】学生信息包括:学号、姓名、数学成绩、英语成绩、计算机成绩。共有N个人(N<=10,可在程序内部

定义,

如用#define N 10) 的信息。要求计算每人的总成绩,并按总成绩由高到低的顺序输出所有人的信息。

最后

输出各门课程平均成绩(保留2位小数)。

【输入形式】输入分N行,每行为一个学生的学号、姓名、数学成绩、英语成绩、计算机成绩信息。

【输出形式】输出为N+4行。第一行为固定字符串;第2~N+1行为按总成绩由高到低顺序输出的所有人信息;最后3行输

出各门课程的平均成绩。

要求:1、输出的第一行,每个元素的后面空3个空格,“Total”后不加空格。

2、输出的第二行到第N+1行,每个元素后面空4个空格,最后一个元素,如“258”后面不加

空格,

且每行以回车符结束。

3、输出的最后三行没有空格,每行仅以回车符结束。

提醒:由于本题格式比较麻烦,请同学务必按照规定输出,不然你的程序将会被判错。

【样例输入】1001 zhang 90 80 88

1002 huang 78 80 82

1003 xiong 88 85 80

【样例输出】NO Name Maths English Computer Total

1001 zhang 90 80 88 258

1003 xiong 88 85 80 253

1002 huang 78 80 82 240

average of Maths:85.33

average of English:81.67

average of Computer:83.33

【样例说明】实际上这个结果应该是下面的样子:

NO(3个空格)Name(3个空格) Maths(3个空格)English(3个空格)Computer(3个空格)Total

1001(4个空格)zhang(4个空格)90(4个空格)80(4个空格)88(4个空格)258

1003(4个空格)xiong(4个空格)88(4个空格)85(4个空格)80(4个空格)253

1002(4个空格)huang(4个空格)78(4个空格)80(4个空格)82(4个空格)240

average of Maths:85.33

average of English:81.67

average of Computer:83.33

【评分标准】本题共2个测试点,通过得1.0分。

#include

#define N 10

int main()

{

int i,j,k,q,sum=0,score[N][4],tscore;

char

title[6][N]={"NO","Name","Maths","English","Computer","Total"},no[N][N],tno,name[N][N],tnam

e;

float avgMath=0,avgEnglish=0,avgComputer=0;

for(i=0;i<3;i++)

{

scanf("%s",&no[i]);

scanf("%s",&name[i]);

sum=0;

for(j=0;j<3;j++)

{

scanf("%d",&score[i][j]);

sum+=score[i][j];

}

score[i][3]=sum;

avgMath+=score[i][0];

avgEnglish+=score[i][1];

avgComputer+=score[i][2];

}

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

if(score[j][3]

{

for(q=0;q<4;q++)

{

tscore=score[j][q];

score[j][q]=score[j+1][q];

score[j+1][q]=tscore;

}

for(k=0;k

{

tno=no[j][k];

no[j][k]=no[j+1][k];

no[j+1][k]=tno;

tname=name[j][k];

name[j][k]=name[j+1][k];

name[j+1][k]=tname;

}

}

}

for(i=0;i<6;i++)

printf("%s ",title[i]);

printf("\n");

for(i=0;i<3;i++)

{

printf("%s ",no[i]);

printf("%s ",name[i]);

for(j=0;j<4;j++)

printf("%d ",score[i][j]);

printf("\n");

}

printf("average of Maths:%.2f\n",avgMath/3);

printf("average of English:%.2f\n",avgEnglish/3);

printf("average of Computer:%.2f\n",avgComputer/3);

return 0;

}

实验4.数组---10042 矩阵乘法

2.【问题描述】已知矩阵A(m*n)和B(n*p),求C=A*B。

【输入形式】第一行三个整数为m,n,p(m,n,p均小于10),从第二行开始为m行n列A矩阵,然后为n行p列的B 矩阵。

所有数据之间均由一个空格分隔。

【输出形式】输出m行p列的C矩阵,所有数据之间均由一个空格分隔,输出的每一个数据后面跟一个空格。

【样例输入】2 3 4

1 0 3

3 4 0

1 0

2 1

2 3 4 5

2 1 1 5

【样例输出】7 3 5 16

11 12 22 23

【样例说明】最后得到的2行4列的矩阵如上图所示。

【评分标准】本题共2个测试点,每个测试点0.5分,全部通过得1.0分。

#include

int main()

{

int i,j,k,M[3][10][10],r[3],c[3];

scanf("%d%d%d",&r[0],&r[1],&c[1]);

相关文档
最新文档