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;}
- línea 5
La cajita se crea vacía. Todavía no hay nada dentro: lo va a poner quien escriba. - línea 7
%ddice que espera un entero, y&ndice dónde dejarlo. Sin el&,scanfescribiría sobre una copia.
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