1183:病人排队
我首先的思路是定义一个二维数组,之后发现病人的ID不仅有数字,还有字母,所以就要定义两个数组,一个来存储病人ID,是字符串。另一个来存储年龄。然后用两层循环,先将60岁以上的ID按年龄大小输出。剩下的再按顺序输出。
代码:
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 string a[110]; 5 int b[110]; 6 int main() 7 { 8 int n; 9 cin>>n; 10 for(int i=1;i<=n;++i) 11 { 12 cin>>a[i]>>b[i]; 13 } 14 for(int i=150;i>=60;--i) 15 { 16 for(int j=1;j<=n;++j) 17 { 18 if(b[j]==i) 19 { 20 cout<<a[j]<<endl; 21 } 22 } 23 } 24 for(int i=1;i<=n;++i) 25 { 26 if(b[i]<60) 27 { 28 cout<<a[i]<<endl; 29 } 30 } 31 return 0; 32 }
emm~这是我一开始的代码:↓☟
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 string a[110]; 5 int b[110]; 6 int main() 7 { 8 int n; 9 cin>>n; 10 for(int i=1;i<=n;++i) 11 { 12 cin>>a[i]>>b[i]; 13 } 14 for(int i=100;i>=60;--i) 15 { 16 for(int j=1;j<=n;++j) 17 { 18 if(b[j]==i) 19 { 20 cout<<a[j]<<endl; 21 } 22 } 23 } 24 for(int i=1;i<=n;++i) 25 { 26 if(b[i]<60) 27 { 28 cout<<a[i]<<endl; 29 } 30 } 31 return 0; 32 }
与上一个代码唯一不同的是:这个代码我定义的老人最大年龄为100;上一个是150;
然后我一开始的代码交上后得了20分,只对了两个测试点。改成150后,就AC了。额,百岁老人还是很多的。。。