在英文合同或其他法律文件中,经常使用下列日期格式:
Dated this ______ day of________,________.
请编写程序,以如上的格式来显示英文日期。
1.解题思路:
最终显示的效果应当是"Dated this + (1)输入变量day时输入的数字
+ (2)对应的序数词后缀(用switch-case语句实现) + (3)day of
+ (4)合适的月份名(对应输入的变量month,用switch-case语句实现) + (5), + (6)合适的年份名 + (7). "
2.参考答案:
/* Prints a date in legal form */
/* 打印一个合法形式的日期 */
#include<stdio.h>
int main()
{
int month,day,year;
printf("Please enter date (mm/dd/yy): ");
scanf("%d/%d/%d", &month , &day , &year );
/* 解题思路:最终显示的效果应当是"Dated this + (1)输入变量day时输入的数字
+ (2)对应的序数词后缀(用switch-case语句实现) + (3)day of
+ (4)合适的月份名(对应输入的变量month,用switch-case语句实现) + (5), + (6)合适的年份名 + (7). " */
printf("Dated this %d",day);
// (2)对应的序数词后缀
switch (day) {
/* 不要忘记在switch语句之后添加break!否则无法跳出开关结构! */
case 1:
case 21:
case 31:
printf("st");
break;
case 2:
case 22:
printf("nd");
break;
case 3:
case 23:
printf("rd");
break;
/* 基数词为1,2,3拥有特殊的序数词后缀,所以需要用switch-case语句实现对特殊情况的选择控制 */
default : printf("th ");
break;
}
printf(" day of ");/* (3) */
switch (month) /* (4)使用switch语句实现月份的选择 */
{
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;
}
printf(",%d\n",year);// (6)合适的年份名
return 0;
}
3.提示:不要忘记在switch语句之后添加break!否则无法跳出开关结构!