结构体数组内数组的所有数据大小比较,c语言学生成绩,所有成绩中的最高分并输出,总成绩最高的学生,输出该学生的基本信息及总成绩。

给定结构体数据类型 struct stu {   char stuID[13],

                                                    char stuName[10],

                                                    float scoreEMP[3],

                                           };

编写程序完成如下功能:主函数定义基于结构体struct stu数据类型的5名学生的数组student,调用函数void inputData(...)通过键盘输入5名学生的信息,stuID保存学生的12位学号,stuName保存学生的姓名,scoreEMP保存学生的英语、数学和程序设计3门课的成绩;调用函数void findMAXscore(...)找出所有成绩中的最高分并输出;调用函数void totalScores(...)计算出3门课总成绩最高的学生,输出该学生的基本信息及总成绩。说明:3个被调用函数的参数的数据类型及名字,自己决定。

输入提示信息:"Input stuID:n"

                        "Input stuName:n"

                        "Input scoreEMP:n"

输入格式:    字符串用gets()函数,成绩用scanf("%f%f%f",....)。

输出格式:    

"The high score is %.2f.n"

"The student's stuID %s,stuName %s,scoreEMP:%.2f,%.2f,%.2f,total score %.2f.n"
 

#include<stdio.h>
#define N 4
struct stu 
{ 
	char stuID[13];
 	char stuName[10];
 	float scoreEMP[3];
};	
void inputdata(struct stu s[N]);
void findMAXscore(struct stu s[N]);
void totalScore(struct stu s[N]);
int main()
{
	struct stu s[N];
	inputdata(s);
	findMAXscore(s);
	totalScore(s);
	return 0;
}
void inputdata(struct stu s[N])
{
	int i;
	for(i=0;i<=4;i++)
    	{
			printf("input stuID:n");
    		gets(s[i].stuID);
    		printf("input stuName:n");
    		gets(s[i].stuName);
    		printf("input scoreEMP:n");
    		scanf("%f%f%f",&s[i].scoreEMP[0],&s[i].scoreEMP[1],&s[i].scoreEMP[2]);
    		while(getchar()!='n');
		}
}
void findMAXscore(struct stu s[])
{
	float maxscore;
	int x,y,i;
	float z[14],max;
	y=0;
	for(i=0;i<15;i=i+3)
		{
			z[i]=s[y].scoreEMP[0];
        	z[i+1]=s[y].scoreEMP[1];
        	z[i+2]=s[y].scoreEMP[2];
        	y++;
		}
		max=z[0];	
	for(x=0;x<15;x++)
	{
		if(max<=z[x])
		{
	   		max=z[x];
		}
	}
	maxscore=max;
	printf("The high score is %.2f.n",maxscore);
}
void totalScore(struct stu s[])
{
	int i,j;
	int m;
	float sum[N],k,total;
	for(i=0;i<5;i++)
	{
		sum[i]=s[i].scoreEMP[0]+s[i].scoreEMP[1]+s[i].scoreEMP[2];
	}
	k=sum[0];
	m=0;
	for(j=1;j<5;j++)
     	{
    		if(k<sum[j])
  			{
				k=sum[j];
				m=j;
   			}
     	}
	total=s[m].scoreEMP[0]+s[m].scoreEMP[1]+s[m].scoreEMP[2];
	printf("The student stuID %s,stuName:%s,scoreEMP:%.2f,%.2f,%.2f,totalscore%.2f.n",
	s[m].stuID,
	s[m].stuName,
	s[m].scoreEMP[0],s[m].scoreEMP[1],s[m].scoreEMP[2],total);
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>