人造人 发表于 2021-8-19 20:15:56

ctrl + c 可以让程序停下来

wangka 发表于 2021-8-19 20:17:02

人造人 发表于 2021-8-19 20:15
ctrl + c 可以让程序停下来

知道的,只不过看这东西刷屏有点疯{:10_285:}

Max472 发表于 2021-8-19 20:19:43

wangka 发表于 2021-8-19 20:15
什么意思

没想到字母这回事{:10_277:}

wangka 发表于 2021-8-19 20:20:29

Max472 发表于 2021-8-19 20:19
没想到字母这回事

上一个每周一练也是这个问题

Max472 发表于 2021-8-19 20:31:09

wangka 发表于 2021-8-19 20:20
上一个每周一练也是这个问题

那要处理字母的话改成char类型?
但是那样年份不就越界了吗

还能踢两年 发表于 2021-8-19 21:58:31

好的

lgh202020 发表于 2021-8-19 23:39:18

本帖最后由 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))))

孤独自学丫 发表于 2021-8-20 09:09:34

wangka 发表于 2021-8-19 19:44
这错太多了(可以改)。1,输入没有间隔。2,输出有误。3,你的重新输入while有没有停止(差点把我电脑炸 ...

加个rewind(stdin);清除输入缓冲区

lihw 发表于 2021-8-20 10:45:52

#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;
}

cheerlye 发表于 2021-8-20 15:20:00

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;
}

超过光速c 发表于 2021-8-20 19:28:52

#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;
}

超过光速c 发表于 2021-8-20 19:34:44

wangka 发表于 2021-8-19 20:08
你随便打几个字母呢?(电脑炸了不要怪我)

够严谨!

wangka 发表于 2021-8-20 20:09:52

青出于蓝 发表于 2021-8-20 18:02
感觉这种乱输入根本没有意义。
题目主要是写核心代码,搞这些异常处理是为何?
没见过哪个题库的题目 ...

这。。。我下次会看看吧

wangka 发表于 2021-8-20 20:10:32

人造人 发表于 2021-8-19 20:47


OK

wangka 发表于 2021-8-20 20:11:09

lgh202020 发表于 2021-8-19 23:39


这里是C++。。。。

wangka 发表于 2021-8-24 21:14:26

明天发答案

3236654291 发表于 2021-8-24 22:13:04

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)

wangka 发表于 2021-8-29 20:13:46

3236654291 发表于 2021-8-24 22:13


你这不是C++吧

3236654291 发表于 2021-8-31 21:18:45

wangka 发表于 2021-8-29 20:13
你这不是C++吧

{:10_257:}{:10_257:}不是啊,我以为什么都可以{:10_277:}
页: 1 [2]
查看完整版本: 计算天数 每周一练(3)(3星题目)