很烫的凉水 2023-02-16 21:22 采纳率: 85.7%
浏览 19
已结题

c++判断星期和日期位数为四的程序问题


#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
    int a,b[13],c,b2,bs=1,m;
    scanf("%d年%d月%d日 星期%d",a,b2,c,m);
    b[2]=28;
    if(a%4==0&&a%100==0||a%400==0){
        b[2]=29;
    } 
    b[1]=b[3]=b[5]=b[7]=b[8]=b[10]=b[12]=31;
    b[4]=b[6]=b[9]=b[11]=30;
    while(m%7==4&&c%10==4){
        if(bs==13){
            b[2]=28;
            if(a%4==0&&a%100==0||a%400==0){
                b[2]=29;
            } 
            a++;
            bs=1;
        }
        if(c>b[bs]){
            bs++;
            c=1;
        }
        else c++;
        m++;
        
    }
    cout<<a<<"年"<<bs<<"月"<<c<<"日";
    return 0;
}

运行完之后会终止运行,希望各位学c++指点一下。

  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-02-16 22:04
    关注

    该回答引用ChatGPT

    
    
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
        string date;
        cout << "请输入日期(格式为yyyymmdd):";
        cin >> date;
    
        // 判断日期是否为四位数
        if (date.length() != 8) {
            cout << "输入的日期格式不正确!" << endl;
            return 0;
        }
    
        // 计算星期
        int year = stoi(date.substr(0, 4));
        int month = stoi(date.substr(4, 2));
        int day = stoi(date.substr(6, 2));
        if (month == 1 || month == 2) {
            month += 12;
            year--;
        }
        int week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400 + 1) % 7;
    
        // 输出星期
        string weekday;
        switch (week) {
        case 0:
            weekday = "星期日";
            break;
        case 1:
            weekday = "星期一";
            break;
        case 2:
            weekday = "星期二";
            break;
        case 3:
            weekday = "星期三";
            break;
        case 4:
            weekday = "星期四";
            break;
        case 5:
            weekday = "星期五";
            break;
        case 6:
            weekday = "星期六";
            break;
        }
        cout << "星期:" << weekday << endl;
    
        // 输出日期
        cout << "日期:" << date << endl;
    
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来