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 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出