@[compatibility](/user/1074260)
你这个太麻烦了你看看我的
```c
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y,z;
cin>>x>>y>>z;
//排序
if(x>y)swap(x,y);
if(x>z)swap(x,z);
if(y>z)swap(z,y);
//输入顺序
char a,b,c;
cin>>a>>b>>c;
//输出(简单判断)
if(a=='A')cout<<x<<" ";
else if(a=='B')cout<<y<<" ";
else cout<<z<<" ";
if(b=='A')cout<<x<<" ";
else if(b=='B')cout<<y<<" ";
else cout<<z<<" ";
if(c=='A')cout<<x<<" ";
else if(c=='B')cout<<y<<" ";
else cout<<z<<" ";
return 0;
}
```
by xQWQx @ 2023-09-02 19:14:09
@[C112345565](/user/1024387)
我只学了c还没开始c++呢..
by compatibility @ 2023-09-02 19:22:35
@[compatibility](/user/1074260)
......
by xQWQx @ 2023-09-02 19:23:56
@[C112345565](/user/1024387)
所以我这个是哪里出问题了吗
by compatibility @ 2023-09-02 19:26:45
@[compatibility](/user/1074260)
~~我只学了c++还没开始c呢..~~
by xQWQx @ 2023-09-02 19:31:29
@[compatibility](/user/1074260)
还是会一点的我看看
by xQWQx @ 2023-09-02 19:31:56
@[compatibility](/user/1074260)
```c
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y,z,l;
char a,b,c;
scanf("%d%d%d",x,y,z);
scanf("%c%c%c",a,b,c);
if(x>y){l=y;y=x;x=l;}
if(x>z){l=z;z=x;x=l;}
if(y>z){l=z;z=y;y=l;}
if(a=='A')printf("%d ",x);
else if(a=='B')printf("%d ",y);
else printf("%d ",z);
if(b=='A')printf("%d ",x);
else if(b=='B')printf("%d ",y);
else printf("%d ",z);
if(c=='A')printf("%d ",x);
else if(c=='B')printf("%c ",y);
else printf("%d ",z);
return 0;
}
```
这样能看懂吗?⊙﹏⊙∥
by xQWQx @ 2023-09-02 19:45:36
@[C112345565](/user/1024387)
呃,看不太懂,改成这样不知道为什么就过了,明明之前跟这个没什么区别的
```c
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
void rank1(int arr[], int left, int right)//left:开始的下标,right:结束的下标。
{
int ret = arr[left];
int right1 = right;
int left1 = left;
if (left < right)
{
while (left < right)
{
while ((left < right) && (arr[right] >= ret))
{
right--;
}
arr[left] = arr[right];
left++;
while ((left < right) && (arr[left] <= ret))
{
left++;
}
arr[right] = arr[left];
right--;
}
arr[left] = ret;
rank1(arr, left1, left - 1);
rank1(arr, right + 1, right1);
}
}
int main()
{
int arr1[33] = { 0 };
char arr2[5] = { 0 };
for (int i = 0; i < 3; i++)
{
scanf("%d", &arr1[i]);
getchar();
}
scanf("%s", &arr2);
rank1(arr1, 0, 2);
for (int i = 0; i < 3; i++)
{
if (arr2[i] == 'A')
arr2[i] = arr1[0] + '0';
else if (arr2[i] == 'B')
arr2[i] = arr1[1] + '0';
else if (arr2[i] == 'C')
arr2[i] = arr1[2] + '0';
}
fflush(stdin);
fflush(stdout);
for (int i = 0; i < 3; i++)
{
printf("%d", arr2[i] - '0');
if (i != 2)
{
printf(" ");
}
}
printf("\n");
return 0;
}
by compatibility @ 2023-09-02 19:48:13
@[compatibility](/user/1074260)
你这个我也看不太懂⊙﹏⊙∥
```c
//头文件
#include<bits/stdc++.h>
using namespace std;
int main()
{
//定义
int x,y,z,l;
char a,b,c;
//输入
scanf("%d%d%d",x,y,z);
scanf("%c%c%c",a,b,c);
//排序(如果大于就交换,类似于冒泡)
if(x>y){l=y;y=x;x=l;}
if(x>z){l=z;z=x;x=l;}
if(y>z){l=z;z=y;y=l;}
//输出一个一个输出(可以理解为A为最小B为中C为大,因为已经排序好了,所以判断输出大小值)
if(a=='A')printf("%d ",x);
else if(a=='B')printf("%d ",y);
else printf("%d ",z);
if(b=='A')printf("%d ",x);
else if(b=='B')printf("%d ",y);
else printf("%d ",z);
if(c=='A')printf("%d ",x);
else if(c=='B')printf("%c ",y);
else printf("%d ",z);
//结束
return 0;
}
```
重新加了一遍注释~~这次能看懂吗?~~
by xQWQx @ 2023-09-02 19:57:10
@[C112345565](/user/1024387)
差不多懂了
```c
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
void rank1(int arr[], int left, int right)//left:开始的下标,right:结束的下标。
{
int ret = arr[left];
int right1 = right;
int left1 = left;
if (left < right)
{
while (left < right)
{
while ((left < right) && (arr[right] >= ret))
{
right--;
}
arr[left] = arr[right];
left++;
while ((left < right) && (arr[left] <= ret))
{
left++;
}
arr[right] = arr[left];
right--;
}
arr[left] = ret;
rank1(arr, left1, left - 1);
rank1(arr, right + 1, right1);
}
}
//上面是快排的函数
int main()
{
int arr1[33] = { 0 };//这个数组放数字
char arr2[5] = { 0 };//这个数组放ABC
for (int i = 0; i < 3; i++)
{
scanf("%d", &arr1[i]);
getchar();
}
scanf("%s", &arr2);
rank1(arr1, 0, 2);//把数字排序
for (int i = 0; i < 3; i++)
{
if (arr2[i] == 'A')
arr2[i] = arr1[0] + '0';
else if (arr2[i] == 'B')
arr2[i] = arr1[1] + '0';
else if (arr2[i] == 'C')
arr2[i] = arr1[2] + '0';
}
//把放ABC的数组里面的ABC换成对应的数字
fflush(stdin);
fflush(stdout);
//好像是清内存来着?
for (int i = 0; i < 3; i++)
{
printf("%d", arr2[i] - '0');
if (i != 2)
{
printf(" ");
}
}
//按顺序输出
printf("\n");
return 0;
}
by compatibility @ 2023-09-02 21:34:24