choose 发表于 2020-3-7 14:41:21

有没有老哥帮我看看我这个代码哪出了问题?

本帖最后由 choose 于 2020-3-7 15:00 编辑

#include <stdio.h>
int main()
{
        int year,i;
        char a;
       
        printf("请输入一个年份:") ;
        scanf("%d",year);
       
        for(i=0;i<12;i++)
        {
               
                if(i==3||i==5||i==8||i==10)
                {
                        a=30;
                }
                else
                {
                        a=31;
                }
        }
       
        if((year%4==0&&year%100!=0)||year%400==0)
        {
                a=29;
        }
        else
        {
                a=28;
        }
               
        for(i=0;i++;i<12)
        {
                printf("%c/n",a);
        }
        return 0;
}

qiuyouzhi 发表于 2020-3-7 14:43:46

请用代码格式发代码,不然是斜体

qiuyouzhi 发表于 2020-3-7 14:44:39

哪有直接给数组赋值的。。。。
怎么着都得有一个下标吧

qiuyouzhi 发表于 2020-3-7 14:46:59

而且,用char类型的数组存放int类型的数据???
能不能把你这段代码想实现的功能说一下

choose 发表于 2020-3-7 15:01:24

qiuyouzhi 发表于 2020-3-7 14:46
而且,用char类型的数组存放int类型的数据???
能不能把你这段代码想实现的功能说一下

j想实现的就是输入年份打印 每个月的天数

choose 发表于 2020-3-7 15:04:24

qiuyouzhi 发表于 2020-3-7 14:44
哪有直接给数组赋值的。。。。
怎么着都得有一个下标吧

上面复制的时候出问题了应该是 a【i】

Ranbo_ 发表于 2020-3-8 11:37:52

#include <stdio.h>
int main()
{
    int year ,i;
    char a;

    printf("请输入一个年份:") ;
    scanf("%d", &year);//1

    for(i=0; i<12; i++)
    {
      if(i == 3 || i == 5 || i == 8 || i == 10)
      {
            a = 30; //2
      }
      else
      {
            a = 31; //2
      }
    }

    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    {
            a = 29;
    }
    else
    {
            a = 28;
    }

    for(i = 0; i < 12; i++) //3
    {
      printf("%d\n", a);//4
    }
    return 0;
}1.用scanf输入时要取用变量的地址
2.不能直接对数组首地址赋值
3.for循环的结构写错了,应该是:for(单次表达式; 条件表达式; 末尾循环体)你的条件表达式和末尾循环体写反了
4.要用%d输出整形数据;换行符是\n,不是/n

页: [1]
查看完整版本: 有没有老哥帮我看看我这个代码哪出了问题?