Como sumar en C

C y C++
30 marzo, 2015

A continuación veremos un nuevo ejemplo para explicar brevemente como obtener y guardar valores para realizar operaciones simples en C con ellos, en este caso se utiliza la función scanf_s de la biblioteca estándar, en lugar de scanf, esto debido a problemas que tenían distintas funciones de C en Visual Studio, por lo que se agrego "_s" al final como identificación de funciones seguras, con esta función obtendremos dos enteros escritos por el usuario, realizaremos la suma e imprimiremos el resultado mediante printf. A partir de ahora utilizaremos una primera linea para comentar el objetivo del programa:

  1. /* Programa para sumar dos numeros */
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.     int entero1, entero2, suma, c;            /* Declaración */
  7.  
  8.     printf("Agrega el primer entero: ");    /* Pedir el primer valor */
  9.     scanf_s("%d", &entero1);                /* Leemos el primer valor */
  10.     printf("Agrega el segundo entero: ");    /* Pedir el segundo valor */
  11.     scanf_s("%d", &entero2);                /* Leemos el segundo valor */
  12.     suma = entero1 + entero2;                /* Realizamos la suma */
  13.     printf("La suma es: %d \n", suma);        /* Imprimimos la suma */
  14.  
  15.     do {
  16.         c = getchar();                        /* Obtenemos el ultimo caracter */
  17.     } while (c != '\n' && c != EOF);
  18.     if (c != EOF) {        
  19.         getchar();                            /* Esperar una tecla para salir */
  20.     }
  21.  
  22.     return 0;                        /* Indique que el programa termino correctamente */
  23. }

Todo programa inicia su secuencia con main. La primera linea dentro del bloque declara el tipo int (entero) y nombre de las variables, para nuestro caso, llamaremos entero1 y entero2 a los valores de entrada, mientras que suma almacenará la suma de los valores ingresados.

printf("Agrega el primer entero: ");	/* Pedir el primer valor */

Imprime en la pantalla el mensaje que pide el primer valor. El enunciado

scanf_s("%d", &entero1);		/* Leemos el primer valor */

utiliza scanf_s para obtener un valor del usuario. Esta función tiene dos argumentos, "%d" y &entero1. El primer argumento, la cadena de control de formato, indica el tipo de dato que deberá ser escrito por el usuario. El especificador de conversión "%d" indica que los datos deberán de ser un entero (la letra d significa "entero decimal"). El signo % en este contexto es tratado por scanf como un carácter de escape como \, y la combinación %d es una secuencia de escape.

El segundo argumento empieza con un ampersand (&) -llamado operador de dirección en C- seguido por un nombre de variable. El ampersand al ser combinado con el nombre el nombre de la variable, le indica a scanf la posición en memoria en la cual esta almacenada la variable entero1.

Cuando la computadora ejecute scanf esperará a que el usuario escriba un valor para la variable entero1.

De manera similar, las siguientes lineas piden y almacenan el segundo valor ingresado por el usuario.

printf("Agrega el segundo entero: ");	/* Pedir el segundo valor */
scanf_s("%d", &entero2);		/* Leemos el segundo valor */

La linea

suma = entero1 + entero2;		/* Realizamos la suma */

calcula la suma de las variables entero1 y entero2 y asigna el resultado a la variable suma utilizando el operador de asignación =.

Finalmente, imprimimos el resultado

printf("La suma es: %d \n", suma);	/* Imprimimos la suma */

A diferencia del primer ejemplo Hola Mundo, getchar no puede ser utilizado como un finalizado del programa, debido que al ingresar los valores de entero2 presionamos la tecla enter, getchar entiende que se a agregado un carácter y se auto-alimenta, por así decir, lo que provoca que el programa termine. Por ello realizamos la modificación:

do {
	c = getchar();			/* Obtenemos el ultimo caracter */
} while (c != '\n' && c != EOF);

De esta manera, guardaremos en c el valor de la tecla enter, por lo que creamos un do-while (primero se ejecuta la operación y luego la evalúa la condicion), de tal manera que primero obtiene c="tecla_enter" y ademas no es EOF (End-of-File), un indicador de que no hay más información que recuperar de una fuente de datos entonces terminamos. Por lo que se cumple la condición de ser distinto de "\n" y de no ser el ultimo código. Lo siguiente es un if

if (c != EOF) {
	getchar();			/* Esperar una tecla para salir */
}

De tal manera que si c no es el final del código, espera obtener otro carácter, el cual finalizara el programa presionar alguna tecla.

return 0;				/* Indique que el programa termino correctamente */

Indica que el programa funciona correctamente y finaliza.

Suma dos numeros

1 thought on “Como sumar en C”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *