#include <stdio.h> int main() { int year, month, day; printf("输入年-月-日:\n"); scanf("%d-%d-%d", &year, &month, &day); int days_in_month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; while (month < 1 || month > 12) { printf("月份错误,重新输入:\n"); scanf("%d", &month); } while (day < 1 || day > days_in_month[month]) { printf("天数错误,重新输入:\n"); scanf("%d", &day); } printf("%d年%d月%d日", year, month, day); return 0; }
时间: 2024-04-08 11:35:49 浏览: 70
你的代码看起来是正确的,通过输入年、月和日,然后验证输入的月份和日期是否有效,并输出输入的日期。
当用户输入的月份不在有效范围内时,程序会要求用户重新输入,直到输入有效的月份为止。同样,如果用户输入的日期不在有效范围内,程序也会要求用户重新输入,直到输入有效的日期为止。
最后,程序会输出输入的年、月和日。代码逻辑上没有问题,应该可以正常运行。如果你有任何其他问题或需要进一步的帮助,请随时提问。
相关问题
#include <stdio.h> int main() { int month, day, year; printf("enter date (mm/dd/yy): "); scanf("%d/%d/%d", &month, &day, &year);
这是一个C语言的程序,它包括了标准输入输出库stdio.h,定义了一个名为main的函数,该函数返回一个整型值。在main函数中定义了三个整型变量month、day、year,并输出一条提示信息让用户输入日期信息。用户输入的日期信息以mm/dd/yy的格式进行输入,使用scanf函数将输入的数据存储到对应的变量中。
scanf函数的格式化字符串"%d/%d/%d"表示需要输入三个整型数据,并以斜杠分隔,对应存储到month、day、year三个变量中。最后程序执行结束,main函数返回0。
请使用c语言帮我完成题目:用一个8位正整数表示日期,其中前4位表示年,中间2位表示月,最后2位表示日。 #include<stdio.h> #include<string.h> #include<math.h> #include<ctype.h> #include<stdlib.h> int valid_date(int date) { int year,month,day; int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; year=date/10000; month=date/100%100; day=date%100; if(month>12) return 2; mon[1]+=(year%4==0 && year%100!=0 || year%400==0); return day>mon[month-1]; } int main() { int first=20170901,last=20200510,date; int year,month,day,val,days; /**********Program**********/ /********** End **********/ printf("%u-%u共有%d天\n",first,last,days); return 0; }
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int date = 20211231; // 假设日期为2021年12月31日
int year = date / 10000; // 获取年份
int month = date % 10000 / 100; // 获取月份
int day = date % 100; // 获取日
printf("日期为:%d年%d月%d日\n", year, month, day);
return 0;
}
```
代码解释:
1. 首先定义一个8位正整数表示日期,假设日期为2021年12月31日,所以我们将其赋值为20211231。
2. 然后通过整除和取模运算获取年份、月份和日。其中,年份可以通过将日期除以10000得到;月份可以通过将日期对10000取模再除以100得到;日可以通过将日期对100取模得到。
3. 最后使用printf函数输出日期,格式为“年份月份日”。
希望能对您有所帮助!
阅读全文