PbApollo 2019-04-11 23:37 采纳率: 75%
浏览 254
已采纳

明明有赋值语句啊,为什么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");

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-04-12 09:03
    关注
        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)
    =和==号也没分清楚。
    
    总之不谈你程序的问题,基本语法都不会
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号