C语言:输入10个同学姓名和出生日期,然后按照年龄从大到小排序,分两列输出结果。第一列为姓名,第二列为

2025-04-07 06:18:56
推荐回答(2个)
回答1:

#include
typedef struct student
{
char name[10];
int year;
int yearsold;
}student;
void main()
{
student stu[10];
student temp;
int i, j;
for (i = 0; i != 10; ++i)
{
scanf("%s %d", stu[i].name, &stu[i].year);
stu[i].yearsold = 2011 - stu[i].year;
}
for (i = 0; i != 10; ++i)
{
for (j = i + 1; j != 10; ++j)
{
if (stu[i].yearsold < stu[j].yearsold)
{
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
for (i = 0; i != 10; ++i)
{
printf("%-10s%-10d%-10d\n", stu[i].name, stu[i].year, stu[i].yearsold);
}
}

回答2:

自己利用结构体解决啊,很简单的,自己动手