山东科技大学OJ部分题目记答案(5)

2019-04-10 19:44

printf(\ return 0; }

Problem A: 结构体的使用(编程题) Description

设有结构体定义如下: typedef struct Student {

char major[50];//专业 char name[50];//姓名

int score[3];//3门课程的成绩

} STU;

编写一个子函数,输出每个学生的总分,函数原型如下:

void printInfo(STU students[],int num);

其中students[]是由num个STU类型的结构体组成的数组。 输出格式见下。

注意:主函数已经给出,提交时需提交以下内容:上述结构体STU的定义(直接复制上就可以,要放在头文件包含命令之后)、必要的头文件包含命令以及printInfo函数的代码。

Input

输入为多行。第一行N>0表示有N个学生的信息。之后有N行,每一行包含5个部分,分别表示每位学生的专业、姓名和3门课程的成绩,两两之间用空格隔开。成绩为正整数。

Output

输出为N行,每一行为一名学生的信息,格式为:

major,name:totalSocre.

其中major表示学生的专业,name表示学生的姓名,totalScore表示该生的总分。所有的标点符号均为半角字符。

Sample Input

3

Computer Tom 100 98 89 Information Jack 98 89 87 Management Mary 89 89 89

Sample Output

Computer,Tom:287. Information,Jack:274. Management,Mary:267.

HINT

Append Code

append.c,

#include typedef struct Student {

char major[50]; char name[50]; int score[3]; } STU;

void printInfo(STU students[],int num) {

int i,j; int s;

for(i=0;i

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

s+=students[i].score[j];

printf(\ printf(\ } }

int main() {

int i,N;

scanf(\ STU stus[N]; getchar();

for (i=0;i

scanf(\

scanf(\ }

printInfo(stus,N); return 0; }

Problem B: 谁能上春晚?(编程题) Description

科大电视台将在2013年2月10日举办一场大型春节晚会。为了选拔好节目,科大电视台将于近日举办一次“直通科大春晚”的节目,届时将有M名选手和N名评委参加,并选拔排名前三甲的选手参加春晚。

选手的排序原则是:对每名选手,N个评委的评分需要去掉一个最高分和一个最低分,然后求其平均分,按照平均分进行递减排序。假定任意2名选手的平均得分都不相同。

现在,已知每位评委给每名参数选手的评分,需要你来编写一个程序,输出能够参加春晚的三名选手的名字和得分。 为方便起见,本题要用到如下结构体定义:

typedef struct {

int score[10];//选手的10个得分,得分与评委一一对应 double aver;//选手的平均分 char name[81];//选手的姓名 } Choice;

要求你编写两个函数。一个是

int inputChoice(Choice peo[],int M,int N);

用于输入M名选手的信息。其中peo[]是存储选手信息的结构体数组,M和N分别是选手数和评委数。 第二个是

int sort(Choice peo[],int M,int N);

用于对M名选手根据平均得分排成递减序。其中peo[]是由inputChoice函数输入的M名选手的结构体数组,M和N是选手数和评委数。

main函数已经给出,提交时,只需提交必要的编译预处理命令、结构体定义(直接复制上面的定义语句即可)以及你所编写的函数。

Input

输入的第一行是M和N,表示有M名选手和N名评委。其中3

之后是M行输入,每行以选手的名字为开头(选手名字不超过80个字符,且不含任何空白符),之后是一个空格以及N个得分,得分两两之间用一个空格隔开。

Output

输出为三行,每行是一个能够上春晚的选手的名字和得分,名字和得分用一个空格隔开。输出顺序为冠军、亚军和季军。

Sample Input

4 5

Jack 91 92 93 94 95

Tom 85 84 83 82 81 Mary 92 92 92 92 92 Smith 73 73 73 73 73

Sample Output

Jack 93.00 Mary 92.00 Tom 83.00

HINT

Append Code

append.c,

#include typedef struct {

int score[10]; double aver; char name[81]; } Choice;

int inputChoice(Choice peo[],int M,int N) { int k,j; for(k=0;k

int sort(Choice peo[],int M,int N) { int j,k,a,b,m,n; double s; Choice t; for(k=0;ka) a=peo[k].score[j]; if(peo[k].score[j]

return 0; }

int main() {

Choice peoples[30]; int M,N,i;

scanf(\

inputChoice(peoples,M,N); sort(peoples,M,N); for (i=0; i<3; i++)

printf(\ return 0; }

////Problem B: 填空题:顺序输出字母

Description

按字母顺序输出两个字母st和ed之间的所有字母,但不包括st和ed。不输出逆序。

Input

两个字母st和ed,都是大写字母,用一个空格分开。

Output

在一行内按顺序输出st和ed之间的所有字母,但不包括st和ed。 例如:

输入为A和E,则输出为BCD;

输入为A和B,则什么字母也不输出,只有一个空行; 输入为E和A,也是什么字母也不输出, 只有一个空行。 最后要输出一行(行尾不回车): ***END***

Sample Input

A C

Sample Output

B

***END***

HINT

Append Code

#include int main() {

int i;

char st, ed;

scanf(\

for(i = st+1; i!=ed&&st

printf(\ return 0; }

Problem D: 输出金字塔(填空) Input

输入只有一行,包含一个正整数n和一个字符ch,两者用一个空格隔开。其中n表示金字塔的行数,ch表示构成金字塔的字符。

Output

n行字符ch组成的金字塔,每行要居中。样例所示。

Sample Input

5 *

Sample Output

* *** ***** ******* *********

#include int main() {

int i,j,n; char ch;

scanf(\ for (i=1; i<=n; i++) {

for (j=1; j<=n-i; j++) putchar(' '); for (j=1;j<2*i; j++) putchar(ch); if (i

putchar('\\n'); }

return 0; }

Problem E: 求数组中的最大值(填空)

现有一个不超过1000个整数组成的数组,其中可能有重复数据出现。要求编写一个程序,求该数组中的最大值以及最大值所在的所有下标。部分程序已经给出,请填充空白语句,并提交填充后的完整程序。 部分程序如下:

Input

输入分为2行:第一行是一个正整数0

Output

输出是一行,其格式为:

maximum number is ?, whose positions are:*

其中“?”代表最大值(唯一的),“*”代表最大值所在的位置。如果最大值出现多次,则需输出所有的下标,下标两两之间由半角的逗号“,”隔开。

Sample Input

9

1 2 3 9 5 8 7 8 9

Sample Output

maximum number is 9, whose positions are:3,8

HINT

Append Code

#include int main() {

int array[1000],N,maxIndex[1000],max,i,numOfMax; scanf(\ for (i=0;i

scanf(\ max=array[0]; numOfMax=0;

maxIndex[numOfMax++]=0;


山东科技大学OJ部分题目记答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:单层厂房排架结构中

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: