人造人 发表于 2021-8-19 20:15
ctrl + c 可以让程序停下来
知道的,只不过看这东西刷屏有点疯{:10_285:} wangka 发表于 2021-8-19 20:15
什么意思
没想到字母这回事{:10_277:} Max472 发表于 2021-8-19 20:19
没想到字母这回事
上一个每周一练也是这个问题 wangka 发表于 2021-8-19 20:20
上一个每周一练也是这个问题
那要处理字母的话改成char类型?
但是那样年份不就越界了吗 好的 本帖最后由 lgh202020 于 2021-8-19 23:44 编辑
def year(y):
if y % 100 == 0:
if y % 400 == 0:
return 1
else:
return 0
else:
if y % 4 == 0:
return 1
else:
return 0
def month(m,y):
if m > 12 or m < 1:
print('数据输入错误')
if m == 2:
if y == 1:
return 29
else:
return 28
elif m != 2:
if m >= 7:
if m % 2 == 0:
return 30
else:
return 31
elif m < 7:
if m % 2 == 0:
return 31
else:
return 30
a = input()
a = a.split('')
print(month(int(a),year(int(a)))) wangka 发表于 2021-8-19 19:44
这错太多了(可以改)。1,输入没有间隔。2,输出有误。3,你的重新输入while有没有停止(差点把我电脑炸 ...
加个rewind(stdin);清除输入缓冲区 #include <stdio.h>
int main()
{ int year,mon;
int days={31,28,31,30,31,30,31,31,30,31,30,31};
int day =0;
if(scanf("%d %d",&year,&mon)!=EOF)
{
if ((year%4==0)&&(year%100!=0)||(year%400==0))
{
if (mon==2)
day=days+1;
}
day=days;
}
return day;
}
c语言的方法喔
#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;
} #include "stdio.h"
int main(){
int year, month, sum, leap;
printf("Input Year and Month:");
scanf("%d %d", &year, &month);
switch(month){
case 1: sum = 31;break;
case 2: sum = 28;break;
case 3: sum = 31;break;
case 4: sum = 30;break;
case 5: sum = 31;break;
case 6: sum = 30;break;
case 7: sum = 31;break;
case 8: sum = 31;break;
case 9: sum = 30;break;
case 10: sum = 31;break;
case 11: sum = 30;break;
case 12: sum = 31;break;
default:printf("Input Error!\n");break;
}
// 闰年和平年的判断
if(year%4==0 && year%100!=0 || year%100==0 && year%400==0){
leap = 1;
}else{
leap = 0;
}
if(leap == 1 && month==2){
sum++;
}
printf("Day's: %d\n",sum);
return 0;
} wangka 发表于 2021-8-19 20:08
你随便打几个字母呢?(电脑炸了不要怪我)
够严谨! 青出于蓝 发表于 2021-8-20 18:02
感觉这种乱输入根本没有意义。
题目主要是写核心代码,搞这些异常处理是为何?
没见过哪个题库的题目 ...
这。。。我下次会看看吧 人造人 发表于 2021-8-19 20:47
OK lgh202020 发表于 2021-8-19 23:39
这里是C++。。。。 明天发答案 n = input('输入两个空格隔开的正整数year和month:')
n = n.split()
n = ),int(n)]
oy =
ly =
def check(year,month):
if year % 4 or year % 400: #不是闰年
print(oy)
else: #是闰年
print(ly)
check(n,n) 3236654291 发表于 2021-8-24 22:13
你这不是C++吧 wangka 发表于 2021-8-29 20:13
你这不是C++吧
{:10_257:}{:10_257:}不是啊,我以为什么都可以{:10_277:}
页:
1
[2]