gpt4 book ai didi

c - 使用 C 中的结构对月份进行排序

转载 作者:行者123 更新时间:2023-11-30 19:52:03 26 4
gpt4 key购买 nike

我需要制作一个日历(如待办事项列表),并且需要对其中的月份进行排序。

我有一个结构:

typedef struct
{
char name[3];
int month_num;
int day_num;
int day_size; // amount of days that are field in with tasks.
char task[40];

}month; // each month contains a name, its num in the calendar and days.

为了对月份进行排序,以便更容易,我决定按月份进行排序。我的意思是,我将 Jan 称为数字 1,将 Feb 称为数字 2,等等。但由于我有结构,所以我有点迷失在所有名称和所有元素的方式中。

我设法给出了所有月份的数字:(有点长,所以我先展示几个)

    if (strcmp(mName, "jan") == 0)
{
mon[monthcounter].month_num = 1;
}
else if (strcmp(mName, "feb") == 0)
{
mon[monthcounter].month_num = 2;
}
else if (strcmp(mName, "mar") == 0)
{
mon[monthcounter].month_num = 3;
}
else if (strcmp(mName, "apr") == 0)
{
mon[monthcounter].month_num = 4;
}
else
{
printf("Invalid month\n");
}
//etc.

现在要自己排序,我迷路了。(我确实知道如何制作一个接收 2 个整数或一个数组的常规交换函数,但我认为这里它不一样......)

我非常感谢您的帮助!

最佳答案

你说得完全正确 - 这是一个简单的交换函数。解决问题的最简单方法是使用该函数获取月份的整数值,对它们进行排序,然后使用新函数将它们转换回来。

假设您确保 Month_num 介于 0 和 11 之间:

static const char *months[] = { "jan", "feb", ... };
return months[month_num];

关于c - 使用 C 中的结构对月份进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28169818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com