示例:
输入(日月年):2011 年 11 月 11 日
输出:2011 年 11 月 11 日
这是正确的,但是月份和年份之间有一个额外的数字
我不知道如何删除它。请帮忙!
#include <stdio.h>
int getDay(int day)
{
switch(day)
{
case 1: printf("%dst ", day); break;
case 2: printf("%dnd ", day); break;
case 3: printf("%drd ", day); break;
default: printf("%dth ", day); break;
}
}
int getMonth(int month)
{
switch(month)
{
case 1: printf("January "); break;
case 2: printf("February "); break;
case 3: printf("March "); break;
case 4: printf("April "); break;
case 5: printf("May "); break;
case 6: printf("June "); break;
case 7: printf("July "); break;
case 8: printf("August "); break;
case 9: printf("September "); break;
case 10: printf("October "); break;
case 11: printf("November "); break;
case 12: printf("December "); break;
default: printf("Invalid "); break;
}
}
int main()
{
int day, month, year;
printf("Enter date in dd mm yyyy format: ");
scanf("%d %d %d", &day, &month, &year);
day = getDay(day);
month = getMonth(month);
year = year;
printf("%d", day);
printf("%d", month);
printf("%d", year);
fflush(stdin);
getchar();
}
最佳答案
您的 getMonth()
和 getDay()
函数都应根据 header 返回一个 int
,您不会从函数,那么这些行中存储了什么:
day = getDay(day);
month = getMonth(month);
有人猜测,那么您将在此处打印这些值:
printf("%d", day);
printf("%d", month);
如果您只想显示“2011 年 11 月 11 日”,且 getDay
和 getMonth
函数都返回 void,则不要重新分配 day
和 month
,并重构您的输出:
getDay(day); //print day and "th" or "st" or "rd"
getMonth(month); //print month
printf("%d", year); //print year
关于c - 为什么多了一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13011571/