「已注销」 2021-10-17 12:21 采纳率: 75%
浏览 127
已结题

请问这题该怎么做才能考虑到所有错误情况?不能用数组和函数

img

img

  • 写回答

2条回答 默认 最新

  • 广大菜鸟 2021-10-17 22:13
    关注
    
    #include<stdlib.h>
    #include<stdio.h>
    int main(){
        // 2021 2 1
        int y,m,weekday,state,totalDays,i,j,row,col,t;
        state=scanf("%d%d",&y,&m);
        while(state!=2||y<2000||y>2030||m<1||m>12){
            fflush(stdin);
            state=scanf("%d%d",&y,&m);
        }
    
        if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)  totalDays = 31;
        else if(m==2)   totalDays =((y%4==0&&y%100!=0)||y%400==0)?29:28;
        else totalDays = 30;
    
        state=scanf("%d",&weekday);
        while(state!=1||weekday<0||weekday>6){
            fflush(stdin);
            state=scanf("%d",&weekday);
        }
        printf("日\t一\t二\t三\t四\t五\t六\n");
        row = (weekday + totalDays)/7+1;
        col = 7;t=0;
        for(i=0;i<row;i++){
            for(j=0;j<col;j++){
                if(i==0&&j<weekday){
                    printf(" \t");
                }else if(t<totalDays){
                    t += 1;
                    printf("%d\t",t);
                }
            }
            printf("\n");
        }
        system("pause");
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • Sunburstiii 2021-10-20 15:54
    关注

    我学的是java,不过思路差不多,写个死循环,然后里边写判断,错误的话直接continue就行了,还得写个异常,异常来判断不是数字的类型,错误的话也continue重新循环

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月29日
  • 已采纳回答 10月21日
  • 创建了问题 10月17日

悬赏问题

  • ¥15 multisim电路设计(相关搜索:设计报告)
  • ¥15 从github上下载的项目到ecplise上咋运行
  • ¥15 PC-lint Plus
  • ¥15 gpl24676注释
  • ¥15 php5.3内存泄露
  • ¥15 DigSilent如何复制复合模型到自己案例?
  • ¥15 求日版华为b610s-77a 官方公版固件,有偿
  • ¥15 关于#java#的问题,请各位专家解答!(相关搜索:java程序)
  • ¥15 linux tsi721的驱动编译后 insmod 提示 报错
  • ¥20 multisim测数据