c语言小题目
定义一个结构,该结构由语文成绩(float) ,数学成绩(float) ,英语成绩(float) ,名字(char20])组成,依此输入5个人名字,三门成绩,依据三门成绩的平均分从大到小排序,输出名字和对应的三门成绩。 #include <stdio.h>struct student{
double chinese;
double math;
double english;
double aver;
char name;
};
int main(void)
{
struct student a,b;
int i,j,max;
for(i=0;i<5;i++)
{
printf("请输入第%d个人的三科成绩,以空格分离",i+1);
scanf("%lf%lf%lf",&a.chinese,&a.math,&a.english");
getchar();
a.aver=(a.chinese+a.math+a.english)/3.0;
printf("请输入姓名\n");
gets(a.name);
}
for(i=0;i<5;i++)
{
max=i;
for(j=i+1;j<5;j++)
{
if(a.aver>a.aver)
max=j;
}
b=a;
a=a;
a=b;
}
for(i=0;i<5;i++)
{
printf("姓名: %s 语文 :%lf 数学:%lf 英语 :%lf 平均分: %lf\n",a.name,a.chinese,a.math,a.english,a.aver);
}
}
不好意思忘记return 0 了,我是个小白,太抱歉了 大概思路就是这样,不过还是看来以后自己写一个,思路是一样的~
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Student
{
// 补充定义学号、姓名、分数
long long int num;
char name;
int score;
};
/***定义read函数读取学生信息***/
void read(Student& a)
{
scanf("%lld %s %d", &a.num, a.name, &a.score);
}
/***定义print函数输出学生信息***/
void print(const Student& a)
{
printf("%lld %s %d\n", a.num, a.name, a.score);
}
/***定义sort函数对学生信息排序***/
void sort( Student a[], int n)
{
Student t;
for(int i=0;i<n-1;i++)
for (int j = i + 1; j < n; j++)
if (a.score < a.score)
{
t = a;
a = a;
a = t;
}
}
int main()
{
Student stu;
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
read(stu); // 自定义read函数
}
sort(stu, n); // 自定义sort函数对stu数组前n个元素排序
for (int i = 0; i < n; i++)
{
print(stu); // 自定义print函数
}
return 0;
}
页:
[1]