Ejercicio 06 — Leer dos enteros e intercambiarlos con una variable auxiliar
Dificultad: amarillo · Módulo 01 (Variables, tipos y entrada/salida)
Enunciado
Leer dos enteros e intercambiarlos con una variable auxiliar.
Diagrama de flujo

Cómo se resuelve
Intercambiar el contenido de dos variables. Parece trivial, pero esconde un problema de orden.
El intento ingenuo a = b; b = a; no funciona: en cuanto haces a = b, el valor original de a se pierde para siempre, y la segunda línea copia b sobre sí mismo. Acabas con las dos variables iguales.
La solución es una variable auxiliar que guarde el valor antes de pisarlo:
int aux = a;— guardamos una copia delaoriginal.a = b;— ahoraapuede tomar el valor debsin perder nada (lo teníamos enaux).b = aux;—brecibe elaoriginal que habíamos guardado.
Imagínalo con dos vasos llenos: para intercambiar sus líquidos necesitas un tercer vaso vacío. aux es ese tercer vaso. Este patrón del “swap con variable temporal” reaparece constantemente al ordenar listas.
Para practicar — cópialo en Dev-C++
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
/*
* Curso de C — Modulo 01: Variables, tipos y entrada/salida
* Ejercicio 06 — PRACTICA (rellena los TODO)
* Enunciado: Leer dos enteros e intercambiarlos con una variable auxiliar.
* Dificultad: amarillo
* Compilar: gcc -std=c11 -Wall ej06_practica.c -o ej06 && ./ej06
*/
#include <stdio.h>
int main(void) {
// TODO: declara dos enteros 'a' y 'b', inicializados a 0
// TODO: lee 'a' del usuario (muestra "a = " antes)
// TODO: lee 'b' del usuario (muestra "b = " antes)
// TODO: muestra los valores ANTES del intercambio:
// "Antes: a = %d, b = %d\n"
// TODO: intercambia a y b usando una variable auxiliar 'aux'
// Paso 1: aux = a (guarda a)
// Paso 2: a = b (a recibe b)
// Paso 3: b = aux (b recibe el a original)
// TODO: muestra los valores DESPUES del intercambio:
// "Después: a = %d, b = %d\n"
return 0;
}Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 01: Variables, tipos y entrada/salida
* Ejercicio 06 — MODELO (resuelto)
* Enunciado: Leer dos enteros e intercambiarlos con una variable auxiliar.
* Dificultad: amarillo
* Compilar: gcc -std=c11 -Wall ej06_modelo.c -o ej06 && ./ej06
*/
#include <stdio.h>
int main(void) {
int a = 0, b = 0;
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
printf("Antes: a = %d, b = %d\n", a, b);
// Intercambio clasico con variable auxiliar
// Si hicieramos a = b directamente, perderiamos el valor original de a
int aux = a; // guardamos a
a = b; // a toma el valor de b
b = aux; // b toma el valor original de a
printf("Después: a = %d, b = %d\n", a, b);
return 0;
}Cómo usarlo
Dev-C++ (Windows): Archivo → Nuevo → Código fuente, pega el código y pulsa F11 (compilar y ejecutar). Si ves los acentos raros en la consola, escribe chcp 65001 y vuelve a ejecutar.