想询问一下 为什么直接粘贴的测试案例 只能粘贴一行(见图二像粘贴五个案例,只显示了一个)?为什么会有图二的结果和图三正确的结果不一样?


#include<iostream>
#include<string>
using namespace std;
class Person 
{
public:
    string name;
    int y;
    int m;
    int d;
};
int main()
{
    Person a, max, min;
    max.y = 2014, max.m = 9, max.d = 6; max.name = "max";
    min.y = 1814, min.m = 9, min.d = 6; min.name = "min";
    int num;
    int count = 0;
    cin >> num;
    for (int i = 1; i <= num; i++)
    {
        //scanf("%s %d/%d/%d", &a.name, &a.y, &a.m, &a.d);
        cin >> a.name >> a.y >> a.m >> a.d;
        if ((a.y == 2014 && a.m == 9 && a.d <= 6) || (a.y < 2014 && a.y>1814) || (a.y == 1814 && a.m == 9 && a.d >= 6) || (a.y == 2014 && a.m < 9) || (a.y == 1814 && a.m > 9))
        {
            count++;
            if ((a.y < max.y) || (a.y == max.y && a.m < max.m) || (a.y == max.y && a.m == max.m && a.d <= max.d))
            {
                max.name = a.name;
                max.y = a.y;
                max.m = a.m;
                max.d = a.d;
            }
            if ((a.y > min.y) || (a.y == min.y && a.y && a.y > min.y) || (a.y == min.y && a.y && a.y == min.y && a.d >= min.d))
            {
                min.name = a.name;
                min.y = a.y;
                min.m = a.m;
                min.d = a.d;

            }
        }
        continue;
    }
    if (count == 0)
    {
        cout << 0;
    }
    else
    {
        cout << count << " " << max.name << " " << min.name;
    }
}
    /*5
        John 2001 / 05 / 12
        Tom 1814 / 09 / 06
        Ann 2121 / 01 / 30
        James 1814 / 09 / 05
        Steve 1967 / 11 / 20*/

img

img

img