欢迎使用CSDN-markdown编辑器

来源:互联网 发布:飞机晚点软件 编辑:程序博客网 时间:2024/05/21 03:15

c语言编程某年日历的输出。

直接来说今天所遇到的问题:
1.程序输出死循环;
2.上述原因找出后,程序在输入年份是并没有反应,当再次输入任意值时,才可以得到结果。

解决方案:
1.程序中的if( i == 1)写成了if(i = 1),造成了死循环,这个造成4小时困扰真的让我难以忘记 == 为等于的意思了。
2.sacnf(“%d”,&y)在%d后多了个空格,以致程序输入量不对。

代码块

代码块语法遵循标准markdown代码,例如:

#include <stdio.h>main(){    int a,b,c;    int y;    long d = 1;    int year;    int month;    int i;    static int m[12] = {31,0,31,30,31,30,31,31,30,31,30,31};    printf("The year is(after 1990) : ");    scanf("%d",&y);    for(year = 1990; year < y;year++)     {        if(0 == year % 4 && 0 != year % 100 || 0 == year % 400)        {            d += 366;        }        else        {              d += 365;        }    }    a = d % 7;    c = a;    printf("   一   二   三   四   五   六   日\n");    if(0 == y % 4 && 0 != y % 100 || 0 == y % 400)    {        m[1] = 29;    }    else    {        m[1] = 28;    }    for(month = 0;month < 12;month++)    {        for(i = 1;i <= m[month];i++)        {            if(i == 1)            {                for(b = 1;b < c;b++)                {                    printf("   ");                }                if(0 == c % 7)                {                    printf("   %d\n",i);                }                else                {                    printf("   %d",i);                }                 c = c + 1;            }            else if( 1 != i)            {                if(0 == c % 7)                {                    printf("   %d\n",i);                }                else                {                    printf("   %d",i);                }                 c = c + 1;            }            c = c % 7;        }        printf("\n");    }    return 0;}

    由于后期二位数的出现,所以固定的空距因为多位数出来显得并不是那么完美,至于年份的范围,可以通过调节部分数据以扩大,毕竟自己想出来的,还是挺开心的。新手请见谅~

0 0
原创粉丝点击