日期排列按大小C语言,C语言 日期(年月日 ) 排序
时间: 2023-08-24 13:38:48 浏览: 156
C语言排序C语言排序.doc
5星 · 资源好评率100%
可以通过结构体和冒泡排序来实现按日期大小排序。
首先,定义一个结构体表示日期:
```c
struct Date {
int year;
int month;
int day;
};
```
然后,定义一个函数用于比较两个日期的大小:
```c
int compare_dates(struct Date d1, struct Date d2) {
if (d1.year > d2.year) {
return 1;
} else if (d1.year < d2.year) {
return -1;
} else {
if (d1.month > d2.month) {
return 1;
} else if (d1.month < d2.month) {
return -1;
} else {
if (d1.day > d2.day) {
return 1;
} else if (d1.day < d2.day) {
return -1;
} else {
return 0;
}
}
}
}
```
接下来,实现冒泡排序:
```c
void sort_dates(struct Date dates[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (compare_dates(dates[j], dates[j + 1]) > 0) {
struct Date temp = dates[j];
dates[j] = dates[j + 1];
dates[j + 1] = temp;
}
}
}
}
```
最后,使用以上函数进行日期排序:
```c
int main() {
struct Date dates[] = {{2022, 1, 1}, {2021, 12, 31}, {2022, 2, 1}, {2021, 11, 1}};
int n = sizeof(dates) / sizeof(dates[0]);
sort_dates(dates, n);
for (int i = 0; i < n; i++) {
printf("%d-%02d-%02d\n", dates[i].year, dates[i].month, dates[i].day);
}
return 0;
}
```
输出结果为:
```
2021-11-01
2021-12-31
2022-01-01
2022-02-01
```
阅读全文