c++排序问题过不了

这个问题从编译器里得到的答案是正确的,但是提交答案后每一个测试点都显示错误。找不到原因。

img

img

img

【有帮助请采纳】

【洛谷 P4414 [COCI2006-2007#2] ABC】

【你的错误】
题目要求输入的字符(ABC)只有3个,你却弄错为4个
【解决办法】
将定义的 b[4] 改为 b[3],输入字符个数改为3个,依次输入b[0] b[1] b[2]
【参考代码(含注释)】

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

int main(){
    int arr[3];//定义数组
    char A,B,C;//定义字符
    cin>>arr[0]>>arr[1]>>arr[2];//输入数组
    cin>>A>>B>>C;//输入字符
    sort(arr,arr+3);//排序
    cout<<arr[A-65]<<' '<<arr[B-65]<<' '<<arr[C-65];//输出
    return 0;
}

img

【有帮助请采纳】

你这错误有点多啊

洛谷不是有别人提交的代码和讲解吗?
可以去参考一下别人的写法思路

emmm,你在编译器里面是打印输出。
它这个网页测试应该是需要你return返回值吧

C++代码参考如下:

int main() {
    int a[3];
    char s[3];
    cin >> a[0] >> a[1] >> a[2];
    cin >> s;
    int t;
    for (int i = 0; i < 2; i++) {
        for (int j = i + 1; j < 3; j++) {
            if (a[i] > a[j]) {
                t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
        }
    }
    for (int i = 0; i < 3; i++) {
        if (s[i] == 'A') {
            cout << a[0];
        } else if (s[i] == 'B') {
            cout << a[1];
        } else {
            cout << a[2];
        }
        cout << " ";
    }
    cout << endl;
    return 0;
}
#include<bits/stdc++.h>
using namespace std;
int a[3];//定义数组 
char abc[3];//字符 
int main(){
    for(int i=0;i<3;i++){
        cin>>a[i];
    }
    sort(a,a+3);//排序 
    for(int i=0;i<3;i++){
        cin>>abc[i];//输入 
    }
    for(int i=0;i<3;i++){
        if(abc[i]=='A') cout<<a[0];
        if(abc[i]=='B') cout<<a[1];
        if(abc[i]=='C') cout<<a[2];//判断 
        cout<<' ';
    }   
    return 0;//结束 
}