tips:这道题当没有合理数据的时候输出0.。。。pat隐藏的坑
using namespace std;
int main(){
int N = 0;
char s[200];
char name[100];
char min[100];
char max[100];
int min1 = 999999, max1 = 0;
int count = 0;
int total = 0;
int flag1 = (2014 * 12 + 9) * 31 + 6;
int flag2 = (1814 * 12 + 9) * 31 + 6;
int a[100], b[100], c[100];
cin >> N;
for (int i = 0; i<N; i++)
{
cin >> name >> s;
a[i] = (s[0] - 48) * 1000 + (s[1] - 48) * 100 + (s[2] - 48) * 10 + s[3] - 48;
b[i] = (s[5] - 48) * 10 + s[6] - 48;
c[i] = (s[8] - 48) * 10 + s[9] - 48;
total = (a[i] * 12 + b[i]) * 31 + c[i];
if (total>=flag2&&total<=flag1)
{
count++;
if (total>max1)
{
max1 = total;
strcpy(max, name);
}
if (total<min1)
{
min1 = total;
strcpy(min,name);
}
}
}
if(count!=0)cout<<0;
cout << count << " " << min << " " << max;
return 0;
}
#include<iostream>
#include<string.h>using namespace std;
int main(){
int N = 0;
char s[200];
char name[100];
char min[100];
char max[100];
int min1 = 999999, max1 = 0;
int count = 0;
int total = 0;
int flag1 = (2014 * 12 + 9) * 31 + 6;
int flag2 = (1814 * 12 + 9) * 31 + 6;
int a[100], b[100], c[100];
cin >> N;
for (int i = 0; i<N; i++)
{
cin >> name >> s;
a[i] = (s[0] - 48) * 1000 + (s[1] - 48) * 100 + (s[2] - 48) * 10 + s[3] - 48;
b[i] = (s[5] - 48) * 10 + s[6] - 48;
c[i] = (s[8] - 48) * 10 + s[9] - 48;
total = (a[i] * 12 + b[i]) * 31 + c[i];
if (total>=flag2&&total<=flag1)
{
count++;
if (total>max1)
{
max1 = total;
strcpy(max, name);
}
if (total<min1)
{
min1 = total;
strcpy(min,name);
}
}
}
if(count!=0)cout<<0;
cout << count << " " << min << " " << max;
return 0;
}