```
#include<bits/stdc++.h>
using namespace std;
long long v[4];
string s;
struct node{
int n;
char h;
}arr[4];
int main(){
cin>>v[1]>>v[2]>>v[3]>>s;
sort(v+1,v+1+3);
for(int i=1;i<=3;i++){
arr[i].n=v[i];
if(i==1){
arr[i].h='A';
}
if(i==2){
arr[i].h='B';
}
if(i==3){
arr[i].h='C';
}
}
for(int i=0;i<s.size();i++){
if(s[i]=='A'){
cout<<arr[1].n<<" ";
}
else if(s[i]=='B'){
cout<<arr[2].n<<" ";
}
else{
cout<<arr[3].n<<" ";
}
}
return 0;
}
```
by liu_le_chen @ 2023-08-07 17:23:53
可以自己看一下代码,别忘了关注
by liu_le_chen @ 2023-08-07 17:25:07
```cpp
#include<bits/stdc++.h>
using namespace std;
int aa[4];
char bb[4];
int main(){
for(int i = 0; i < 3; i++){
cin >> aa[i];
}
sort(aa, aa + 3);
int a = aa[0];
int b = aa[1];
int c = aa[2];
for(int i = 0; i < 3; i++){
cin >> bb[i];
if(bb[i] == 'A'){
cout << a << ' ';
}else if(bb[i] == 'B'){
cout << b << ' ';
}else{
cout << c << ' ';
}
}
return 0;
}
```
sort快排,你值得拥有(可以参考参考
by xawm_qwq @ 2023-08-07 17:28:27
对于数组,一般最后一位为`\0`,标志着字符数组的结束,只有含有`\0`结尾的字符数组**才是有意义的字符数组。**
基于此,每次对数组的空间申请,**都应该多申请一位给`\0`的结尾标志符。**
而代码中,题主的`int num[3]`和`char adsj[]3`均只有三位,且**都用来存储数据了**。
此时,`\0`已没有位置,自然WA。
将长度增加一位即可。
萌新解释,请多指教。
by jlyloo @ 2023-08-07 18:20:12
@[jlyloo](/user/1043613) 抱歉,应是`char adsj[3]`。
by jlyloo @ 2023-08-07 18:21:40
谢谢大佬们,AC了
by nahida_badminton @ 2023-08-08 10:19:09