很烫的凉水 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 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测