¿Que es lo que pasa?

Iniciado por matver, 30 Marzo 2017, 19:28 PM

0 Miembros y 1 Visitante están viendo este tema.

matver

El siguiente programa esta pensado para un salón de ventas, donde al final del día se ingresan todas las ventas efectuadas, para luego saber el bruto  en ventas, pero cuando ingreso un valor con decimales, el programa se vuelve loco, como si esperase otro tipo de dato. Con números enteros funciona bien.

#include <stdio.h>
#include <locale.h>
#include <conio.h>
int Ingreso, Salida = -1, contador;
float ventas;
float    acumulador = 0;


int main (int){
setlocale(LC_ALL, "spanish");
printf ("Salón de ventas Nely\n");
printf ("para ingresar al programa digite 1;\n");
scanf("%i",&Ingreso);
   while (Ingreso !=  Salida){

       printf ("Ingres monto de la venta:\n");
       scanf("%f",&ventas);
       acumulador = acumulador +  ventas;
       printf ("para salir de programa digite -1 para continuar digite 2;\n");
       scanf("%i",&Ingreso);
}

printf ("EL total  de ventas del día es es: %g$",acumulador);

getch();
return 0;
}

Puede alguien explicarlo. estoy usando Dev 4.9.9.2

engel lex

ese programa sin conio, ni locale, me funciona perfecto

has una captura de pantalla de una ejecución para ver el error
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

matver

Estaba usando  "." en ves de "," utilizando la "," como separador decimal, ahora si que me funciona perfecto. Gracias.