鱼C论坛

 找回密码
 立即注册
查看: 1878|回复: 4

[已解决]为什么答案出错了呢

[复制链接]
发表于 2020-10-3 19:05:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
是一个输入年份和月份可以输出当月天数的程序
编译通过但是答案错误 到底是哪里出错了呢


代码如下:
#include<stdio.h>
int main()
{
        int m,y;
        scanf("%d %d",&y,&m);
       
        if(y%4==0&&y%100!=0)
        {
       
                if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
                {
                        printf("31\n");
                }
                else if(m=2)
                {
                        printf("29\n");
                }
                else
                {
                        printf("30\n");
                }
        }
        if(y%400==0)
        {
       
                if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
                {
                        printf("31\n");
                }
                else if(m=2)
                {
                        printf("29\n");
                }
                else
                {
                        printf("30\n");
                }
        }
        else
        {
                if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
                {
                        printf("31\n");
                }
                else if(m=2)
                {
                        printf("28\n");
                }
                else
                {
                        printf("30\n");
                }
        }
        return 0 ;
}
最佳答案
2020-10-3 21:38:44
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int m, y;
  5.         printf("请依次输入年,月:");
  6.         scanf("%d %d", &y, &m);

  7.         if ((y % 4 == 0 && y % 100 != 0)||(y % 400 == 0))
  8.         {
  9.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  10.                 {
  11.                         printf("31\n");
  12.                 }
  13.                 else if (m == 2) //你这里少打了各=
  14.                         printf("29\n");
  15.                 else
  16.                         printf("30\n");
  17.         }
  18.         else
  19.         {
  20.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  21.                 {
  22.                         printf("31\n");
  23.                 }
  24.                 else if (m == 2)  //少等号
  25.                         printf("28\n");
  26.                 else
  27.                         printf("30\n");
  28.         }
  29.         return 0;
  30. }
复制代码


闰年判断少不了的,但可以合并
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-3 19:07:00 | 显示全部楼层
以及大佬可不可以介绍一个简单点的方法  感觉我的程序好麻烦哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:34:30 | 显示全部楼层
whale-1901 发表于 2020-10-3 19:07
以及大佬可不可以介绍一个简单点的方法  感觉我的程序好麻烦哦
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int m, y;
  5.         scanf("%d %d", &y, &m);

  6.         if (y % 4 == 0 && y % 100 != 0)
  7.         {

  8.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  9.                 {
  10.                         printf("31\n");
  11.                 }
  12.                 else if (m == 2) //你这里少打了各=
  13.                 {
  14.                         printf("29\n");
  15.                 }
  16.                 else
  17.                 {
  18.                         printf("30\n");
  19.                 }
  20.         }
  21.         if (y % 400 == 0)
  22.         {

  23.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  24.                 {
  25.                         printf("31\n");
  26.                 }
  27.                 else if (m == 2)  //少了一个=
  28.                 {
  29.                         printf("29\n");
  30.                 }
  31.                 else
  32.                 {
  33.                         printf("30\n");
  34.                 }
  35.         }
  36.         else
  37.         {
  38.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  39.                 {
  40.                         printf("31\n");
  41.                 }
  42.                 else if (m == 2)  //少等号
  43.                 {
  44.                         printf("28\n");
  45.                 }
  46.                 else
  47.                 {
  48.                         printf("30\n");
  49.                 }
  50.         }
  51.         return 0;
  52. }


复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:38:44 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int m, y;
  5.         printf("请依次输入年,月:");
  6.         scanf("%d %d", &y, &m);

  7.         if ((y % 4 == 0 && y % 100 != 0)||(y % 400 == 0))
  8.         {
  9.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  10.                 {
  11.                         printf("31\n");
  12.                 }
  13.                 else if (m == 2) //你这里少打了各=
  14.                         printf("29\n");
  15.                 else
  16.                         printf("30\n");
  17.         }
  18.         else
  19.         {
  20.                 if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
  21.                 {
  22.                         printf("31\n");
  23.                 }
  24.                 else if (m == 2)  //少等号
  25.                         printf("28\n");
  26.                 else
  27.                         printf("30\n");
  28.         }
  29.         return 0;
  30. }
复制代码


闰年判断少不了的,但可以合并
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 11:47:51 From FishC Mobile | 显示全部楼层
楼主人呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表