Si queremos que sea el usuario de nuestro programa quien teclee los valores que se guardarán en las variables, necesitamos una nueva orden, llamada "scanf". Su manejo recuerda al de "printf", con una pequeña diferencia: deberá aparecer un símbolo "&" antes del nombre de la variable, así:
scanf("%d", &x);
De modo que un programa simple de ejemplo, que pidiera un número al usuario y luego lo mostrase podría ser:
/* Ejemplo en C: leer datos con "scanf" - ej010801.c */
#include
int main()
{
int x;
printf("Dime un número... ");
scanf("%d", &x);
printf("Tu número es...");
printf("%d", x);
return 0;
}
Al igual que ocurría en "printf", ese "%d" indica que esperamos leer un número entero, mientras que &primerNumero indica que queremos que ese valor leído se guarde en la variable llamada "primerNumero". La diferencia está en ese símbolo "&" que scanf nos obliga a poner antes del nombre de la variable. Más adelante veremos qué quiere decir ese símbolo y en qué otros casos se usa.
Un ejemplo de programa un poco más elaborado, que sume dos números tecleados por el usuario sería:
/* Ejemplo en C: sumar datos del usuario - ej010802c */
#include
int main() /* Cuerpo del programa */
{
int primerNumero, segundoNumero, suma; /* Nuestras variables */
printf("Introduce el primer número ");
scanf("%d", &primerNumero);
printf("Introduce el segundo número ");
scanf("%d", &segundoNumero);
suma = primerNumero + segundoNumero;
printf("Su suma es %d", suma);
return 0;
}
Ejercicio propuesto 1.8.1: Crea un programa que calcule (y muestre) el producto de dos números introducidos por el usuario.
Ejercicio propuesto 1.8.2: Crea un programa que calcule la división de dos números introducidos por el usuario, así como el resto de esa división. Debe mostrar ambos resultados.
Ejercicio propuesto 1.8.3: Suma tres números tecleados por usuario.
Ejercicio propuesto 1.8.4: Pide al usuario una cantidad de "millas náuticas" y muestra la equivalencia en metros, usando: 1 milla náutica = 1852 metros.
Ejercicio propuesto 1.8.5: Pide al usuario la base y la altura de un triángulo y muestra el valor de su superficie (base por altura, dividido entre 2).
Ejercicio propuesto 1.8.6: El usuario tecleará dos números (a y b), y el programa debe mostrar el resultado de la operación (a+b)*(a-b) y el resultado de la operación a2-b2 (ambos deberían ser iguales). Pista: recuerda que a2 es lo mismo que a*a..