void swap(int *a,int *b,int *c){
int t;
if(*a>*b){
t=*a;
*a=*b;
*b=t;
}
if(*a>*c){
t=*a;
*a=*c;
*c=t;
}
if(*b>*c){
t=*b;
*b=*c;
*c=t;
}
}
int main(int argc, char *argv[]) {
int a,b,c,i;
char d[3];
scanf("%d %d %d",&a,&b,&c);
scanf("%c %c %c",&d[0],&d[1],&d[2]);
swap(&a,&b,&c);
for(i=0;i<3;i++){
if(d[i] == 'A')
printf("%d",a);
if(d[i] == 'B')
printf("%d",b);
if(d[i] == 'C')
printf("%d",c);
}
return 0;
}
想请教一下,为什么只有一个输出值?怎么更改呀
我的思路是,先给输入的值排序,然后再根据输入的字母输出,
你在%d后面加一个\n换行或者加个空格
修改见注释,供参考:
#include <stdio.h>
void swap(int* a, int* b, int* c) {
int t;
if (*a > *b) {
t = *a;
*a = *b;
*b = t;
}
if (*a > *c) {
t = *a;
*a = *c;
*c = t;
}
if (*b > *c) {
t = *b;
*b = *c;
*c = t;
}
}
int main(int argc, char* argv[]) {
int a, b, c, i;
char d[3];
scanf("%d %d %d", &a, &b, &c);
scanf(" %c%c%c", &d[0], &d[1], &d[2]); //修改
swap(&a, &b, &c);
for (i = 0; i < 3; i++) {
if (d[i] == 'A')
printf(i == 2 ? "%d" : "%d ", a);//修改
if (d[i] == 'B')
printf(i == 2 ? "%d" : "%d ", b);//修改
if (d[i] == 'C')
printf(i == 2 ? "%d" : "%d ", c);//修改
}
return 0;
}