You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
1.8 KiB
107 lines
1.8 KiB
5 days ago
|
#include <stdio.h>
|
||
|
//定义结构体
|
||
|
struct Student
|
||
|
{
|
||
|
int ID;//学号
|
||
|
float math_grade;
|
||
|
float physics_grade;
|
||
|
float English_grade;
|
||
|
float sum;
|
||
|
float average;
|
||
|
};
|
||
|
void Show_The_Main_interface()
|
||
|
{
|
||
|
//显示主界面
|
||
|
for(int i=1;i<=30;i++)
|
||
|
{
|
||
|
printf(" ");
|
||
|
}
|
||
|
printf("1.Input\n");
|
||
|
for(int i=1;i<=30;i++)
|
||
|
{
|
||
|
printf(" ");
|
||
|
}
|
||
|
printf("2.Output\n");
|
||
|
for(int i=1;i<=30;i++)
|
||
|
{
|
||
|
printf(" ");
|
||
|
}
|
||
|
printf("3.Order\n");
|
||
|
for(int i=1;i<=30;i++)
|
||
|
{
|
||
|
printf(" ");
|
||
|
}
|
||
|
printf("4.Quit\n");
|
||
|
}
|
||
|
|
||
|
void Output_Prompts(char choice)
|
||
|
{
|
||
|
//输出提示信息
|
||
|
if(choice=='i')
|
||
|
{
|
||
|
printf("Please input info of the three students:\n");
|
||
|
}
|
||
|
else if(choice=='o')
|
||
|
{
|
||
|
printf("You are trying to Output info\n");
|
||
|
}
|
||
|
else if(choice=='m')
|
||
|
{
|
||
|
printf("You are trying to Make things ordered\n");
|
||
|
}
|
||
|
else if(choice=='q')
|
||
|
{
|
||
|
printf("You are about to Quit\n");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
printf("Wrong input\n");
|
||
|
}
|
||
|
}
|
||
|
int main()
|
||
|
{
|
||
|
//显示主界面
|
||
|
Show_The_Main_interface();
|
||
|
//用户输入
|
||
|
char choice;
|
||
|
scanf("%c",&choice);
|
||
|
//输出提示信息
|
||
|
Output_Prompts(choice);
|
||
|
|
||
|
//输入学生信息
|
||
|
struct Student information[3];
|
||
|
for(int i=0;i<3;i++)
|
||
|
{
|
||
|
scanf("%d%f%f%f",&information[i].ID,&information[i].math_grade,\
|
||
|
&information[i].physics_grade,&information[i].English_grade);
|
||
|
information[i].sum=information[i].math_grade+information[i].physics_grade\
|
||
|
+information[i].English_grade;
|
||
|
information[i].average=information[i].sum/3.0;
|
||
|
}
|
||
|
|
||
|
//排序
|
||
|
for(int i=0;i<3;i++)
|
||
|
{
|
||
|
for(int j=0;j<3-i-1;j++)
|
||
|
{
|
||
|
if(information[j].sum>information[j+1].sum)
|
||
|
{
|
||
|
//此处我们直接交换结构体
|
||
|
struct Student tmp;
|
||
|
tmp=information[j];
|
||
|
information[j]=information[j+1];
|
||
|
information[j+1]= tmp;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//按要求输出
|
||
|
for(int i=0;i<3;i++)
|
||
|
{
|
||
|
printf("%d,%.1f,%.1f\n",information[i].ID,\
|
||
|
information[i].sum,information[i].average);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|