鱼C论坛

 找回密码
 立即注册
查看: 1119|回复: 2

为什么

[复制链接]
发表于 2023-11-18 18:39:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
using namespace std;
#include <string>
int main()
{
        string a;
        cin >> a;
        if (a[0] == a[2] and a[2] == a[5] and a[5] == a[7] and a[1]==a[3] and a[3]==a[4] and a[4]==a[6])
        {
                cout << "YES";
        }
        else
        {
                cout << "NO";
        }
        return 0;
}给一个8位数字的日期,日期按“yyyymmdd”的格式写,判断其是否是一个ABABBABA型回文日期。回文数指的是正着写和倒着写相等的数。20200202、21211212是回文日期,且是ABABBABA型回文日期。20111102是回文日期,但不是ABABBABA型回文日期。怎么不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-18 18:41:08 | 显示全部楼层
问题解答:

根据你提供的代码,判断日期是否是一个ABABBABA型回文日期的逻辑是正确的。然而,你可能遇到了一个排版错误,导致代码无法正常工作。请注意使用正确的空格和缩进。

以下是修改后的代码:
#include <iostream>#include <string>using namespace std;int main() {    string a;    cin >> a;    if (a[0] == a[7] && a[1] == a[6] && a[2] == a[5] && a[3] == a[4]) {        cout << "YES";    } else {        cout << "NO";    }    return 0;}
在这个修改后的代码中,我做了以下更改:
1. 删除了多余的空格和缩进。
2. 修改了条件语句,使其按照ABABBABA型回文日期的规则进行判断。

希望这次能解决问题。如果还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-11-18 18:45:01 | 显示全部楼层
你的代码中存在一个问题,你使用了 cin 来读取日期,但是 cin 在读取字符串时会遇到空格或换行符就停止读取,所以如果输入的日期是"20200202", cin 只会读取"2020",而不会读取整个日期。这会导致你的判断条件不正确。

你可以使用 getline(cin, a) 来读取整个日期字符串。另外,你的代码中使用了 and 来连接逻辑条件,但在C++中应该使用 && 来表示逻辑与。

下面是修改后的代码:
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string a;
    getline(cin, a);
    if (a[0] == a[7] && a[1] == a[6] && a[2] == a[5] && a[3] == a[4])
    {
        cout << "YES";
    }
    else
    {
        cout << "NO";
    }
    return 0;
}

这样修改后,你就可以正确读取整个日期字符串,并且使用正确的逻辑与操作符来判断是否是ABABBABA型回文日期。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表