社区讨论
WA!!求助!!
P4414[COCI 2006/2007 #2] ABC参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @m4bh257t
- 此快照首次捕获于
- 2024/12/05 23:28 去年
- 此快照最后确认于
- 2025/11/04 13:18 4 个月前
学校有要求,必须使用C语言编写,所以只能用scanf()了(
测试全是WA,但是检查不出什么问题,头都要炸了口牙
C#include<stdio.h>
void turn(int x[], int m, int n);
void bubble(int arr[], int l);
//这里引入了自己写的冒泡排序法的函数,已知排序函数部分没有问题(别的题也用过,都通过了)请大佬忽略
int main(){
char ord[3];
int x[3];
int y[3];
scanf("%d%d%d",&x[0], &x[1], &x[2]);
getchar();
scanf("%s", ord);
getchar();
//先把输入按要求接收好
bubble(x, 3);
//把三个数字从小到大排个序
for(int i = 0; i < 3; i ++){
if(ord[i] == 'A')
y[i] = x[0];
if(ord[i] == 'B')
y[i] = x[1];
if(ord[i] == 'C')
y[i] = x[2];
}
//根据ABC的位置把数字重新安排位置
printf("%d %d %d", y[0], y[1], y[2]);
return 0;
//输出
}
//下面的函数都和排序有关,都是没问题的,请大佬忽略
void turn(int x[], int a, int b){
int t;
t = x[a];
x[a] = x[b];
x[b] = t;
return;
}
void bubble(int arr[], int l){
int flag = 1;
while (flag == 1){
flag = 0;
for (int i = 0; i <= l - 2; i ++){
if(arr[i] > arr[i + 1]){
turn(arr, i, i + 1);
flag = 1;
}
}
}
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...