计算天数 每周一练(3)(3星题目)
本帖最后由 wangka 于 2021-8-19 19:50 编辑每周一练又来了(本周第二次){:10_256:}
题目描述
输入年份与月份,求该月共有多少天。
输入两个空格隔开的正整数year和month,分别表示年
份和月份输出对应这一年这个月的天数。
例子,分别输入2008 和2
输出29
static/image/hrline/1.gif
不要抄袭/灌水哦! Max472 发表于 2021-8-19 20:31
那要处理字母的话改成char类型?
但是那样年份不就越界了吗
#include <stdio.h>
int main(void)
{
int day[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int Leap_Feb = 29;
int year, month;
printf("请输入年份和月份:\n");
while(1) {
if(scanf("%d %d", &year, &month) == 2) break;
while(getchar() != '\n');
printf("年份或月份输入错误,请重新输入!\n");
}
/*
scanf("%d %d", &year, &month);
while ( year<0 || month<1 || month >12 )
{
printf("年份或月份输入错误,请重新输入!\n");
scanf("%d %d", &year, &month);
}
*/
if ( !year%400 || (!year&4 && !year%100) )
{
if ( 2 == month )
printf("%d\n", Leap_Feb);
else
printf("%d\n", day);
}
else
printf("%d\n", day);
return 0;
}
n=input("输入:")
n=n.split("")
def a(e,f):
if e==9 or e==4 or e==6 or e==11:
print("30")
elif f:
print("29")
elif not f:
print("28")
else:
print("31")
if (int(n)%4==0 and int(n)%100):
a(int(n),1)
elif int(n)%400:
a(int(n),1)
else:
a(int(n),0)
本帖最后由 Max472 于 2021-8-18 21:33 编辑
#include <stdio.h>
int main(void)
{
int day[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int Leap_Feb = 29;
int year, month;
printf("请输入年份和月份:\n");
scanf("%d %d", &year, &month);
while ( year<0 || month<1 || month >12 )
{
printf("年份或月份输入错误,请重新输入!\n");
scanf("%d %d", &year, &month);
}
if ( !year%400 || (!year&4 && !year%100) )
{
if ( 2 == month )
printf("%d\n", Leap_Feb);
else
printf("%d\n", day);
}
else
printf("%d\n", day);
return 0;
} 你这题目错了吧 2009年不是闰年是平年 2月份只有28天而不是29天
#include <stdio.h>
void main(){
int y,m;
printf("请输入要查询的年份和月份:");
scanf("%d %d",&y,&m);
if(y%4==0){
if(m==2){
printf("29");
}else if(m == 1||m ==3||m ==5||m ==7||m ==8||m ==10||m ==12){
printf("31");
}else{
printf("30");
}
}else{
if(m == 1||m ==3||m ==5||m ==7||m ==8||m ==10||m ==12){
printf("31");
}else if(m == 2){
printf("28");
}else{
printf("30");
}
}
}
#include <stdio.h>
void main(){
int y,m;
printf("请输入要查询的年份和月份:");
scanf("%d %d",&y,&m);
//2009 2 28
//2009 3 31
//2009 4 30
//2016 2 29
//2016 3 31
//2016 4 30
if(m==2){
if(y%4==0){
printf("29");
}else{
printf("28");
}
}else if(m == 1||m ==3||m ==5||m ==7||m ==8||m ==10||m ==12){
printf("31");
}else{
printf("30");
}
} 啊.....
抱歉抱歉,眼瞎....
原来要求用c... nonleap_year =
leap_year =
i = input('年份和月:')
year_month = i.split()
year = int(year_month)
month = int(year_month)
if year % 400 == 0:
print(leap_year)
else:
if year % 4 == 0 and year % 100 != 0:
print(leap_year)
else:
print(nonleap_year)
{:10_257:} #include<stdio.h>
int main(void)
{
int year, month;
printf("请输入年份和月份中间用两个空格隔开 :");
scanf_s("%d%d", &year, &month);
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("该月份有31天\n"); break;
case 2:
{
if (!(year % 400) || (year % 4 == 0 && year % 100 != 0))
printf("该月份有29天\n");
else printf("该月份有28天\n");
break;
}
case 4:
case 6:
case 9:
case 11:
printf("该月份有30天!\n");
break;
default: printf("请正确输入!\n");
}
return 0;
} 鑫空闪烁 发表于 2021-8-18 22:23
你这题目错了吧 2009年不是闰年是平年 2月份只有28天而不是29天
打错了,不好意思,谢指正 青出于蓝 发表于 2021-8-19 07:50
啊.....
抱歉抱歉,眼瞎....
原来要求用c...
没事 Max472 发表于 2021-8-18 21:24
这错太多了(可以改)。1,输入没有间隔。2,输出有误。3,你的重新输入while有没有停止(差点把我电脑炸了{:10_285:}) 本帖最后由 wangka 于 2021-8-19 19:49 编辑
鑫空闪烁 发表于 2021-8-18 22:58
#include
void main(){
void main ()改成int main
还有如果输入不符合的东西(如13月,字母等)没有重新输入 柿子饼同学 发表于 2021-8-19 12:20
格式 孤独自学丫 发表于 2021-8-19 17:17
#include
int main(void)
会报错 wangka 发表于 2021-8-19 19:44
这错太多了(可以改)。1,输入没有间隔。2,输出有误。3,你的重新输入while有没有停止(差点把我电脑炸 ...
没有啊,我用的 code blocks 20.03 Max472 发表于 2021-8-19 20:05
没有啊,我用的 code blocks 20.03
你随便打几个字母呢?(电脑炸了不要怪我) wangka 发表于 2021-8-19 20:08
你随便打几个字母呢?(电脑炸了不要怪我)
{:10_282:} Max472 发表于 2021-8-19 20:15
什么意思
页:
[1]
2