// 1、假如有5个学生,按照年龄排序,如果年龄相同,按照成绩排序
// struct student
// {
// char name[50];//姓名
// unsigned int age;
// int score;//成绩
// };
#include <stdio.h>
typedef struct student
{
char name[50];//姓名
unsigned int age;
int score;//成绩
}student;
void print_stu(student *stu, int n)
{
int i = 0;
printf("name\tage\tscore\n");
for(i = 0; i < n; i++)
{
printf("%s\t%d\t%d\n", stu[i].name, stu[i].age, stu[i].score);
};
}
void sort_stu(student *stu, int n)
{
int i = 0;
int j = 0;
student tmp; //临时结构体变量
//冒泡排序,按照年龄排序,如果年龄相同,按照成绩排序
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-1-i; j++)
{
if(stu[j].age > stu[j+1].age) //升序
{
tmp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = tmp;
}
else if(stu[j].age == stu[j+1].age)//如果年龄相同,按照成绩排序
{
if(stu[j].score > stu[j+1].score)
{
tmp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = tmp;
}
}
}
}
}
int main()
{
student stu[5] =
{
{"mmm", 18, 90},
{"jjj", 18, 80},
{"lily", 30, 70},
{"lucy", 22, 88},
{"lilei", 33, 60}
};
int n = sizeof(stu)/sizeof(stu[0]);
printf("排序前:\n");
print_stu(stu, n);
//排序
sort_stu(stu, n);
printf("排序后:\n");
print_stu(stu, n);
return 0;
}
模拟闹钟
#include <stdio.h>
#include <time.h>
#include <unistd.h>
typedef struct Time
{//表示时间的数据类型
int hour;
int minute;
int second;
}Time;
int main()
{
Time m_date;
m_date.hour = 10;
m_date.minute = 00;
m_date.second = 00;
printf("当前时间为:\n");
while(1)
{
sleep(1);
m_date.second++;
if(m_date.second >= 60)
{
m_date.second = 0;
m_date.minute++;
if(m_date.minute >= 60)
{
m_date.minute = 0;
m_date.hour++;
if(m_date.hour >= 24)
{
m_date.hour = 0;
}
}
}
printf("\r%02d:%02d:%02d",m_date.hour,m_date.minute,m_date.second);
fflush(stdout);
}
}