4.输出成绩最高学生姓名和学号
#include<stdio.h>
typedef struct student
{
int num;
char name[20];
int sc;
}std;
int main(void)
{
int N;
scanf("%d",&N);
while (N != 0)
{
std s1;
std s2;
s2.sc = 0;
for (int i = 0; i < N; i++)
{
if (i == 0)
scanf("%d %s %d",&s1.num,s1.name,&s1.sc);
else
scanf("%d %s %d",&s2.num,s2.name,&s2.sc);
if (s2.sc>s1.sc) s1 = s2;
}
printf("%d %s\n",s1.num,s1.name);
scanf("%d",&N);
}
}
5.给定日期,按照时间从前往后输出
#include<stdio.h>
typedef struct time
{
int mouth;
int day;
int sum;
}time[50];
int main(void)
{
time s1[50];
int i = 0;
scanf("%d %d",&s1[0]->mouth,&s1[0]->day);
while (s1[i]->mouth != 0 && s1[i]->day != 0)
{
s1[i]->sum = (s1[i]->mouth)*31+s1[i]->day;
i++;
scanf("%d %d",&s1[i]->mouth,&s1[i]->day);
}
int bo = 0;
int j = 0;
while (bo == 0)
{
bo = 1;
for (int j = 0; j < i; j++)
{
time t[1];
if (s1[j]->sum>s1[j+1]->sum)
{
t[0]->day = s1[j]->day;
t[0]->mouth = s1[j]->mouth;
t[0]->sum = s1[j]->sum;
s1[j]->day = s1[j+1]->day;
s1[j]->mouth = s1[j+1]->mouth;
s1[j]->sum = s1[j+1]->sum;
s1[j+1]->day = t[0]->day;
s1[j+1]->mouth = t[0]->mouth;
s1[j+1]->sum = t[0]->sum;
bo = 0;
}
}
}
for (int j = 1; j < i+1; j++)
{
printf("%d %d\n",s1[j]->mouth,s1[j]->day);
}
}