题目:
给定几组日期,要求按照时间从前往后顺序输出
输入描述:
有多组样例输入,以0 0代表结束。每行两个数字,第一个代表月份,第二个代表日期。
输出描述
每组输出占一行
样例输入:
6 8
1 8
12 12
6 6
0 0
样例输出:
1 8
6 6
6 8
12 12
代码实现:(编译环境:CLion)
#include<stdio.h>
struct date
{
int mouth;
int day;
}t[100];
void exchange(int *x1,int *x2,int *y1,int *y2)
{
int z1,z2;
z1=*x1;
*x1=*x2;
*x2=z1;
z2=*y1;
*y1=*y2;
*y2=z2;
}
int main()
{
int i,j,n=0;
for(i=0;;i++)
{
scanf("%d%d",&t[i].mouth,&t[i].day);
if(t[i].mouth==0&&t[i].day==0)
{
break;
}
n+=1;
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
{
if(t[i].mouth>t[i+1].mouth)
{
exchange(&t[i].mouth,&t[i+1].mouth,&t[i].day,&t[i+1].day);
}
else if(t[i].mouth==t[i+1].mouth)
{
if(t[i].day>=t[i+1].day)
{
exchange(&t[i].mouth,&t[i+1].mouth,&t[i].day,&t[i+1].day);
}
}
}
}
for(i=1;i<=n;i++)
{
printf("%d %d",t[i].mouth,t[i].day);
printf("\n");
}
return 0;
}