鱼C论坛

 找回密码
 立即注册
查看: 4032|回复: 8

[已解决]带你学C带你飞S1E17动动手0题

[复制链接]
发表于 2022-4-25 22:30:00 | 显示全部楼层 |阅读模式
8鱼币
求问哪里出现问题? 微信图片_20220425222730.png
#include<stdio.h>

int main()
{
        int b,c,a[12],i;
       
        printf("请输入一个年份:\n");
        scanf("%d",b);
       
        for(i=0;i<=11;i++)
        {
                a[i]=i+1;
                if(a[i]==1||a[i]==3||a[i]==5||a[i]==7||a[i]==8||a[i]==10||a[i]==12)
                {
                        printf("%d月份:31天\n",a[i]);
                }
                else if(a[i]=2)
                {
                        if ((b % 4 == 0 && b % 100 != 0)||(b % 400 == 0))
                        {
                                c=29;
                                printf("%d月份:%d天\n",a[i],c);
                        }
                        else
                        {
                                c=28;
                                printf("%d月份:%d天\n",a[i],c);
                        }
                }
                else
                {
                        printf("%d月份:30天\n",a[i]);
                }
        }
        return 0;
}
最佳答案
2022-4-25 22:30:01
本帖最后由 jackz007 于 2022-4-29 22:11 编辑
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int b[] = {31,28,31,30,31,30,31,31,30,31,30,31} , m , y               ;
  5.         printf("请输入年份 : ")                                               ;
  6.         scanf("%d" , & y)                                                     ;
  7.         if((! (y % 4) && (y % 100)) || ! (y % 400)) b[1] ++                   ;
  8.         for(m = 1 ; m < 13 ; m ++) printf("%2d 月份:%d 天\n" , m , b[m - 1]) ;
  9. }
复制代码

        编译、运行实况:
  1. D:\[00.Exercise]\[C]>g++ -o x x.c

  2. D:\[00.Exercise]\[C]>x
  3. 请输入年份 : 2022
  4. 1 月份:31 天
  5. 2 月份:28 天
  6. 3 月份:31 天
  7. 4 月份:30 天
  8. 5 月份:31 天
  9. 6 月份:30 天
  10. 7 月份:31 天
  11. 8 月份:31 天
  12. 9 月份:30 天
  13. 10 月份:31 天
  14. 11 月份:30 天
  15. 12 月份:31 天

  16. D:\[00.Exercise]\[C]>x
  17. 请输入年份 : 2020
  18. 1 月份:31 天
  19. 2 月份:29 天
  20. 3 月份:31 天
  21. 4 月份:30 天
  22. 5 月份:31 天
  23. 6 月份:30 天
  24. 7 月份:31 天
  25. 8 月份:31 天
  26. 9 月份:30 天
  27. 10 月份:31 天
  28. 11 月份:30 天
  29. 12 月份:31 天

  30. D:\[00.Exercise]\[C]>
复制代码

最佳答案

查看完整内容

编译、运行实况:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-25 22:30:01 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-4-29 22:11 编辑
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int b[] = {31,28,31,30,31,30,31,31,30,31,30,31} , m , y               ;
  5.         printf("请输入年份 : ")                                               ;
  6.         scanf("%d" , & y)                                                     ;
  7.         if((! (y % 4) && (y % 100)) || ! (y % 400)) b[1] ++                   ;
  8.         for(m = 1 ; m < 13 ; m ++) printf("%2d 月份:%d 天\n" , m , b[m - 1]) ;
  9. }
复制代码

        编译、运行实况:
  1. D:\[00.Exercise]\[C]>g++ -o x x.c

  2. D:\[00.Exercise]\[C]>x
  3. 请输入年份 : 2022
  4. 1 月份:31 天
  5. 2 月份:28 天
  6. 3 月份:31 天
  7. 4 月份:30 天
  8. 5 月份:31 天
  9. 6 月份:30 天
  10. 7 月份:31 天
  11. 8 月份:31 天
  12. 9 月份:30 天
  13. 10 月份:31 天
  14. 11 月份:30 天
  15. 12 月份:31 天

  16. D:\[00.Exercise]\[C]>x
  17. 请输入年份 : 2020
  18. 1 月份:31 天
  19. 2 月份:29 天
  20. 3 月份:31 天
  21. 4 月份:30 天
  22. 5 月份:31 天
  23. 6 月份:30 天
  24. 7 月份:31 天
  25. 8 月份:31 天
  26. 9 月份:30 天
  27. 10 月份:31 天
  28. 11 月份:30 天
  29. 12 月份:31 天

  30. D:\[00.Exercise]\[C]>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-26 07:14:11 | 显示全部楼层
scanf("%d",&b);此处错。
a数组不可 以这么用。a=i+1改成a[i],i不用+1,上面for循环i已经自增,而且a数组中要有值,不然没数值后面if判断如何比大小。
下面if判断数组改成这样a[i]==1 || a[i]==3 || a[i]==5 || a[i] ==7 || a[i]==8 || a[i]==10 || a[i]==12
还有printf();中相应的数组都要加上  下标比如写成如下格式:printf("%d月份:31天\n",a[i]);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-26 18:16:31 | 显示全部楼层
一眼就能看出的问题啊:
else if(a=2)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-27 15:11:52 | 显示全部楼层
hehex 发表于 2022-4-26 18:16
一眼就能看出的问题啊:
else if(a=2)

不是不是,这个贴子吞的 ,原来代码有a[i]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-27 15:13:42 | 显示全部楼层
zyek00 发表于 2022-4-26 07:14
scanf("%d",&b);此处错。
a数组不可 以这么用。a=i+1改成a,i不用+1,上面for循环i已经自增,而且a数组中要 ...

好的我去试试看,最后那个问题是我不知道为什么我的帖子会吞【】i把i放进去就吞了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-27 15:19:00 | 显示全部楼层
zyek00 发表于 2022-4-26 07:14
scanf("%d",&b);此处错。
a数组不可 以这么用。a=i+1改成a,i不用+1,上面for循环i已经自增,而且a数组中要 ...

第一个要怎么改呀?因为题目要求要输入年份呀
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-29 20:29:04 | 显示全部楼层
scanf("%d",&b);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-30 22:06:50 | 显示全部楼层
jackz007 发表于 2022-4-25 22:30
编译、运行实况:

谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 10:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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