PbApollo 2019-04-11 23:26 采纳率: 75%
浏览 215
已采纳

明明有赋值语句啊,为什么s还是乱码?(C语言新手求指导)

#include
#include
void main(void)
{
int a,b,c,d,e,s=0;
printf("请输入要查询的年份:");
scanf("%d",&a);
b=2020-a;
c=b%4;
d=b/4;
e=365*3*d+366*d;

if(b!=0)
{
    if(c!=0)
    {
        s=(7+b*(356%7));
    if(s<0)
    {
        do
        s=s+7;
        while(s>0);
    }
    if(s>7)
    {
        do
        s=s-7;
        while(s<7);
    }
    }
    if(c=0)
    {
        s=7+(e%7);
        if(s<0)
    {
        do
        s=s+7;
        while(s>0);
    }
    if(s>7)
    {
        do
        s=s-7;
        while(s<7);
    }
    }

    switch(s)
        {
            case 1:printf("%d年的3月1日是星期一\n",a);break;
                case 2:printf("%d年的3月1日是星期二\n",a);break;
                    case 3:printf("%d年的3月1日是星期三\n",a);break;
                        case 4:printf("%d年的3月1日是星期四\n",a);break;
                                case 5:printf("%d年的3月1日是星期五\n",a);break;
                                    case 6:printf("%d年的3月1日是星期六\n",a);break;
                                        case 7:printf("%d年的3月1日是星期日\n",a);break;
    }
}

else
printf("今年的3月1日是星期日\n");
system("pause");

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-04-12 09:29
    关注
     if(s<0)
        {
            do
            s=s+7;
            while(s>0);
        }
    当s<0的时候,做一次s+7,之后如果还小于0,就不循环了。
    
        if(s>7)
        {
            do
            s=s-7;
            while(s<7);
        }
    当s>7(同时小于14)的时候,s减掉7,那么循环成立了,于是就拼命减,负数也满足<7,直到下溢。
    if(c=0)
    =和==号也没分清楚。
    
    总之不谈你程序的问题,基本语法都不会
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了