使用函数和结构体,输入5名同学的基本信息,判断输出总分最高的同学的信息。

使用函数和结构体,输入5名同学的基本信息(学号、姓名、性别、院系、成绩1,成绩2),判断输出总分最高的同学的信息。

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
struct Student
{
	int nmb;  //学号
	char name[20]; //姓名
	char sex;  //m or w
	char partment[20]; //院系
	int score1;  //成绩1
	int score2;  //成绩2
};

//输入学生信息
void inputInfo(struct Student* arr,int size)
{
	int i = 0;
	printf("请输入学生的学号、姓名、性别(w/m)、院系、成绩1、成绩2\n");
	for (  i = 0; i < size; i++)
	{
		scanf("%d %s %c %s %d %d",&arr[i].nmb,arr[i].name,&arr[i].sex,arr[i].partment,&arr[i].score1,&arr[i].score2);
	}
}

//qizui
void Max(struct Student* arr,int size)
{
	int i;
	int index = 0;
	int mm = arr[0].score1 + arr[0].score2;
	for (i = 1; i < size; i++)
	{
		if ( arr[i].score1 + arr[i].score2 > mm)
		{
			mm = arr[i].score1 + arr[i].score2 ;
			index = i;
		}
	}
	printf("最高分同学信息:%d %s %c %s %d %d\n",arr[index].nmb,arr[index].name,arr[index].sex,arr[index].partment, arr[index].score1,arr[index].score2);
}

int main()
{
	struct Student arr[5];
	inputInfo(arr,5);
	Max(arr,5);
	//getchar();
	//getchar();
	return 0;
}

 

#include <iostream>
#include <string>
using namespace std;
struct student{
string name;//可以自行设置名字
int score;
};
int main(){
student s[5];
int score_, sum = 0;
cout<<"请输入5位同学的分数:"<<endl;
for(int i = 0; i < 5; i ++){
cin>>score_;
s[i].score = score_;
sum += score_;
}
//aver = sum * 0.1 / 5 ;
int highest = s[0].score;
for(int j = 1; j < 5; j ++)
if(highest<s[j].score){
int temp = highest;
highest = s[j].score;
s[j].score = temp;
}
cout<<"总和:"<<sum<<endl<<"最高:"<<highest<<endl;
return 0;
}

 

#include<stdio.h>
typedef struct
{ int num;
char name[10];
float score[3];
double aver;
}student;
void inputs(student stu[])
{ int i,k;
for(i=0;i<2;i++)
{ printf(" 第%d个学生:",i+1);
scanf("%d%s",&stu[i].num,stu[i].name);/* 输入学生学号、姓名*/
printf("输入分数");
for(k=0;k<3;k++)
scanf("%f",&stu[i].score[k]); /*输入学生三门课的分数*/
}
}
void average( student stu[]) /*求学生的平均分*/
{ int i,k;
for(i=0;i<2;i++)
{ float sum=0.0;
for(k=0;k<3;k++)
sum+=stu[i].score[k];
stu[i].aver=sum/3;
}
}
void Printf( student stu[])/*输出学生信息*/
{ int i,k;
printf("输出执行结果:\n");
for(i=0;i<2;i++)
{
printf("\t第%d个学生:\t学号:%d \t姓名:%s\t分数:",i+1,stu[i].num ,stu[i].name);
for(k=0;k<3;k++)
printf("%g ",stu[i].score[k]);
printf("\t平均分:%g",stu[i].aver );
printf("\n");
}
}
void Max( student stu[])
{int i;
int max=0;
for(i=1;i<2;i++)
if(stu[max].aver <stu[i].aver )
max=i;
printf("%g\n",stu[max].aver );
}
void main()
{
student stu[2];
printf("输入数据:\n");
inputs(stu);
average(stu);
Printf(stu);
Max(stu);
}

 

#include<bits/stdc++.h>

using namespace std;

struct Student
{
    string id, name, sex, faculty;
    int m1, m2;
}typedef Student;

bool bigger(Student s1, Student s2)
{
    int a = s1.m1+ s1.m2;
    int b = s2.m1 + s2.m2;
    return a>b;
}

int main()
{
    vector<Student>studentList;
    int n = 2;//有多少学生
    for(int i =0;i<n;i++)
    {
        Student student;
        cout<<"请输入学生信息:"<<endl;
        cout<<"请输入学生学号:"<<endl;
        cin>>student.id;
        cout<<"请输入学生姓名:"<<endl;
        cin>>student.name;
        cout<<"请输入学生性别:"<<endl;
        cin>>student.sex;
        cout<<"请输入学生院系:"<<endl;
        cin>>student.faculty;
        cout<<"请输入学生成绩1:"<<endl;
        cin>>student.m1;
        cout<<"请输入学生成绩2:"<<endl;
        cin>>student.m2;
        studentList.push_back(student);
    }

    sort(studentList.begin(),studentList.end(),bigger);
    cout<<studentList[0].name<<endl;

    return 0;
}