c - 为什么多了一个数字?

标签 c date

示例:

输入(日月年):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 日”,且 getDaygetMonth 函数都返回 void,则不要重新分配 daymonth,并重构您的输出:

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/

相关文章:

c - 在文本文件中搜索 ID (Turbo c)

java - SimpleDateFormat 无法解析的日期异常

java - 将字符串转换为格式化日期

Mysql SELECT 在时间限制内只返回列匹配的最近和下一个最近的行

javascript - 如何获取时区偏移 ±hh :mm in javascript?

c++ - 给定 N 个输入和 p,q 的算法 : find max Xor in array for various interval limis,,其中 0<=p<=i<=q<=N

c - 如何将存储在char数组中的地址转换为实际地址?

java - 将当前日期与属性文件中的日期进行比较

c - C 中检测字符串是 double 还是 long

c - 使用 `PostQuitMessage` 和只处理所有消息有区别吗?