【问题标题】:Print the last date of the month from given the year and month从给定的年份和月份打印该月的最后一个日期
【发布时间】:2021-09-14 07:07:08
【问题描述】:

我刚刚开始学习 C++。

我正在尝试编写代码,从给定的年份和月份中打印出该月的最后一个日期。必须考虑闰年。

我觉得我做错了什么。

如果我输入 2020,那么 2 输出应该是 29。

或者我输入 2018 那么 4 输出应该是 30。

请给我任何提示。

#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
#include <iomanip>
using namespace std;

int main()
{
    int loopNum;

    ifstreeam infile("input2.txt");

    infile >> loopNum;
    for (int i = 0; i < loopNum; i++) {
        int year;
        infile >> year;
        
        int month;
        infile >> month;
        

        if (year) = year % 4 == 0 or year % 400 == 0;
            if month == 2
                cout << "29" << endl;

        else if (month) = 2
            cout << "28" << endl;
            else if (month) = 1, 3, 5, 7, 8, 10, 12
                cout << "31" << endl;
            else 
                cout << "30" << endl;
    }

    infile.close();

    return 0;

}

【问题讨论】:

  • 请给我任何提示。 - Use a debugger.
  • 你为什么认为你做错了什么?你有什么输入,你得到什么输出,你期望什么输出?
  • @Evg 我的思维方式正确吗?
  • 我不知道,你没有写任何关于你的思维方式的文章。您问题中的代码甚至无法编译。
  • 欢迎您!是的,广告@Evg 说,调试器,调试器,调试器(当然是在它编译和链接之后)。知道如何使用调试器可以避免这个站点上的大部分问题。此外,还有more to leap years 而不是您的代码句柄。例如“如果一年能被 100 整除,但不能被 400 整除,那么它不是闰年。如果一年能被 100 和 400 整除,那么它就是闰年”--->

标签: c++


【解决方案1】:

这段代码中有很多语法错误,这就是它甚至可能无法编译的原因。我假设您来自 Python 背景,因为 C++ 有很多不同。

如:

  1. 您的整个 if 语句需要用括号括起来。
  2. 比较时使用“==”,而不是“=”。
  3. 您的 if 和 else 语句没有包含要执行的代码的“{”和“}”。

除此之外,应用的逻辑似乎还不错。只需修复语法,希望它会像魅力一样开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多