Thinking_Spark 2022-11-19 04:34 采纳率: 100%
浏览 32
已结题

错误提问和总结:E0349没有操作数匹配的"<<"运算符

#include<iostream>
#include<string>
using namespace std;

//纯数字——检验是否是日期
bool DateCheck(int date)
{
    /*
    * 1.一个8位数进来,进行拆分,拆分出年月日
    * 2.对月的判断:112即可
    * 3.日的判断:
    int year, month, day;
    year = date / 1000;
    month = date % 1000 / 100; //注意月份是用的整型,赋值02会变为2
    day = date % 100;

    if (date >= 100000000 || date < 0)
    {
        return false;
    }
    else if (month>12)
    {
        return false;
    }
    else if (day > 31)
    {
        return false;
    }
    else {
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
        {
            if (day <= 31)
            {
                return true;
            }
        }
        else if (month == 4 || month == 6 || month == 9 || month == 11)
        {
            if (day <= 30) 
            {
                return true;
            }
        }
        else if (month == 2)
        {
            bool leap = false;
            leap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
            if (leap==true&&day<=29)
            {
                return true;
            }
            else if (leap == false && day <= 28)
            {
                return true;
            }
            else
            {
                return false;
            }
                
        }
    }

}

bool PalindromeCheck(int date)
{
    int year, MonDay,copy;
    year = date / 1000;
    MonDay = date % 1000;
    copy = MonDay;
    for (int i=1;i<=4;i++)
    {
        MonDay = MonDay * 10 + copy % 10;
        copy /= 10;
    }
    MonDay /= 1000;
    if (year == MonDay)
    {
        return true;
    }
    else
    {
        return false;
    }

}
int main() {

    int year1, year2;
    cin >> year1 >> year2;
    
    if (year1 < year2 && DateCheck(year1) && DateCheck(year2))
    {    
        int count = 0;
        for (year1; year1 < year2; year1++)
        {
            if (PalindromeCheck(year1) == true)
            {
                count++;
            }
        }
    }
    cout << count << endl;
    
    
    system("pause");

    return 0;
}

img

img

我找出了问题所在,但是我不知道为什么在if内定义整型变量,最后输出这个变量的时候会报“<<“这个错误。
请求大家帮忙解决一下我的苦恼!
万分感谢!
o(╥﹏╥)o

  • 写回答

1条回答 默认 最新

  • 浪客 2022-11-19 08:36
    关注

    这个是作用域的问题。定义在if内,变量只在if的范围内有效,超出范围变量不存在的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题