1179: definición de macro con parámetros (tema de función)
Título Descripción
Ingrese tres caracteres desde el teclado, sepárelos con espacios, use SWAP en la definición de macro 1 con parámetros, y clasifique y envíe los tres caracteres en orden descendente.
Definición de macro 1: #define SWAP(a, b, t) { t=a; a=b; b=t; }
Intente, si se usa SWAP en la definición de macro 2, ¿cómo se debe modificar la función principal para obtener el resultado correcto?
Definición de macro 2: #define SWAP(a, b, t) t=a; a=b; b=t;
Entrada
Entrada de tres caracteres, separados por espacios
Salida
Salida de una línea, incluidos tres caracteres, separados por espacios
Muestra Entrada Copia
waq
Ejemplo de copia de salida
wqa
Fuente/Clasificación
Definición de macro 1: #define SWAP(a, b, t) { t=a; a=b; b=t; }
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SWAP(a,b,t){t=a;a=b;b=t;}
int main(){
char ch[3];
char t;
scanf("%c",&ch[0]);
for(int i=1;i<3;i++){
scanf(" %c",&ch[i]);
}
for(int i=0;i<2;i++){
for(int j=i+1;j<3;j++){
if(ch[i]<ch[j]) SWAP(ch[i],ch[j],t);
}
}
for(int i=0;i<3;i++) printf("%c ",ch[i]);
printf("\n");
return 0;
}
Definición de macro 2: #define SWAP(a, b, t) t=a; a=b; b=t;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SWAP(a,b,t) t=a;a=b;b=t;
int main(){
char ch[3];
char t;
scanf("%c",&ch[0]);
for(int i=1;i<3;i++){
scanf(" %c",&ch[i]);
}
for(int i=0;i<2;i++){
for(int j=i+1;j<3;j++){
if(ch[i]<ch[j]) {
SWAP(ch[i],ch[j],t);}//加大括号
}
}
for(int i=0;i<3;i++) printf("%c ",ch[i]);
printf("\n");
return 0;
}