Una de las ordenes básicas para realizar la solicitud de datos por pantalla, en un programa realizado en lenguaje C, es la orden scanf.
Esta ultima permite realizar la solicitud de datos por pantalla, el formato de la orden es el siguiente.
scanf(“Formato”,&Variable);
La opción de “Formato” que se especifica, permite indicar que tipo de dato es el que se quiere solicitar, entre los más destacados podemos encontrar los siguientes formatos aplicables.
%d | permite solicitar un dato entero decimal. |
%c | permite solicitar un dato de tipo carácter |
%e | permite solicitar un dato de tipo flotante |
%f | permite solicitar un dato de tipo flotante |
%g | permite solicitar un dato de tipo flotante |
%h | permite solicitar un dato de tipo entero corto |
%i | permite solicitar un dato de tipo entero decimal, octal o hexadecimal. |
%o | permite solicitar un dato de tipo entero octal. |
%s | permite solicitar un dato de tipo cadena de caracteres. al final de la cadena se añade automáticamente el carácter de fin de cadena |
%u | permite solicitar un dato de tipo decimal sin signo. |
%x | permite solicitar un entero hexadecimal. |
%[^\n] | permite solicitar una cadena de caracteres hasta encontrar el símbolo de salto de línea (intro). |
Se ha de tener en cuenta que a la izquierda del nombre de la variable se ha de especificar el símbolo &, con la excepción de cuando sean cadenas, matrices, vectores. Este símbolo indica que el dato tecleado por el usuario, se almacene en la dirección de memoria donde apunta la variable.
Continuando con la orden a continuación se muestra un ejemplo de petición de datos, el programa solicita datos sobre un articulo y realiza el calculo correspondiente al total del pedido realizado para dicho articulo.
#include <stdio.h>
#include <stdlib.h>
int main()
{
/* Creación de variables */
char articulo[100];
char nombreCliente[50];
char apellidosCliente[80];
float precioArticulo=0.0;
int cantidadArticulo=0;
int descuentoArticulo=0;
int ivaArticulo=0;
float eurosDescuento=0.0;
float eurosIva=0.0;
float subtotal=0.0;
float subtotalConDescuento=0.0;
float totalVenta=0.0;
/* Solicitar datos con scanf */
printf("VENTAS ARTICULOS\n");
printf("==========================\n");
printf("Articulo...: ");
scanf(" %[^\n]",articulo);
printf("Nombre Cliente...: ");
scanf(" %[^\n]",nombreCliente);
printf("Apellidos Cliente.... ");
scanf(" %[^\n]",apellidosCliente);
printf("Precio Articulo...: ");
scanf(" %f",&precioArticulo);
printf("Cantidad .....: ");
scanf(" %d",&cantidadArticulo);
printf("Dto. Articulo ..: ");
scanf(" %d",&descuentoArticulo);
printf("IVA Articulo....: ");
scanf(" %d",&ivaArticulo);
/* Calcular el total de la venta realizada */
subtotal = precioArticulo * cantidadArticulo;
eurosDescuento = (subtotal / 100) * descuentoArticulo;
subtotalConDescuento = subtotal - eurosDescuento;
eurosIva = (subtotalConDescuento/100) * ivaArticulo;
totalVenta = subtotalConDescuento + eurosIva;
/* Visualizar resultados */
printf("\nPAGOS A REALIZAR");
printf("\n=========================================");
printf("\nSubtotal..............: %.2f Euros",subtotal);
printf("\nDescuento... %d%% ....: %.2f Euros",descuentoArticulo,eurosDescuento);
printf("\nIVA......... %d%% ....: %.2f Euros",ivaArticulo,eurosIva);
printf("\nTotal a pagar.........: %.2f Euros",totalVenta);
return 0;
}
El resultado del ejercicio de programación en c, ha de ser similar al que se muestra en la imagen siguiente….
Un saludo y gracias por vuestra visita!!!