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

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);
}
}