AprenderC
← Todas las lecciones

Leer lo que te escriben

Un programa que no pregunta nada siempre hace lo mismo.

1Por qué

Todos tus programas hasta ahora traen los datos escritos dentro. Cambiar el número obliga a cambiar el programa, y eso no es un programa: es una cuenta hecha a mano con pasos extra.

scanf es lo contrario de printf: en vez de sacar algo a la pantalla, mete lo que le escriban en una cajita tuya. Se le dice qué clase de dato espera —%d para un entero, igual que al imprimir— y dónde ponerlo.

Y ahí está la trampa, que es la que más veces se ve en un ramo de C: hay que darle la dirección de la cajita, no la cajita. scanf("%d", &n), con &.

Es el mismo & de la lección 9, y por el mismo motivo exacto: scanf tiene que cambiar tu cajita, y para cambiar algo de fuera hace falta saber dónde vive. Pasarle n a secas le daría una copia del valor, y escribiría el resultado sobre esa copia que nadie va a mirar.

Si se te olvida el &, este taller te lo va a decir. Fuera de aquí, el programa se cae sin explicar nada.

2Míralo andar

Este programa funciona. Léelo, y después ejecútalo sin cambiar nada.

#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
printf("el doble es %d\n", n * 2);
return 0;
}

3Ahora tú

Este programa lee un número y le falta el segundo. Escribe la línea que lo lee, para que con 3 y 4 diga: 7

#include <stdio.h>
int main(void)
{
int a;
int b;
scanf("%d", &a);
printf("%d\n", a + b);
return 0;
}

↖︎ Tu línea va aquí, y se parece mucho a la de arriba.

Ejecutar

Lo que dice tu programa

↖︎ Escribe tu parte y dale a Ejecutar

Qué pasó

Aquí te aviso si tu programa hace algo raro.

    4Qué guarda tu programa

    Lo que tu programa recuerda

    ↖︎ Ejecuta el programa para ver qué pasa por dentro