Bueno, para el segundo trabajo de la facultad, nos dieron como consigna tratar de simular un sistema de un cajero de supermercado, donde la compra maxima es de 12 articulos.
Ahora, el problema qe tengo es cuando sumo los totales, y cuando los muestro.
Yo sospecho que el problema viene por los scanf, lo que supongo es qe hay numeros largos qe sobrepasan el espacio reservado y se meten en el lugar de otro, generando cualquier resultado.
Dejo el code:
#include <stdio.h>
#include <stdlib.h>
struct Compra {
int codprod;
int cantidad;
float precio;
};
struct Factura {
int fecha[2];
int cuil[6];
struct Compra lista[12];
float total;
};
struct Factura leerdatos();
float calctot ( struct Compra lista [], int n);
int main() {
int i;
struct Factura fachoy;
fachoy=leerdatos();
fachoy.total=calctot( fachoy.lista, 12);
printf("Los productos que Ud. lleva son: \n"); for (i=0; i<12; i++){
printf("%d - %d - $%d\n\n",fachoy.
lista[i
].
cantidad ,fachoy.
lista[i
].
codprod ,fachoy.
lista[i
].
precio); }
printf("TOTAL ---------------- $%d\n", fachoy.
total);
return 0;
}
struct Factura leerdatos(){
struct Factura temp;
int x;
int i;
printf("Ingrese el dia, luego el mes y finalmente el año.\nEspaciandolos con ENTER. EN NUMEROS\n"); for (i=0; i<3; i++){
scanf("%d",&temp.
fecha[i
]); }
printf("Fecha ingresada: %d/%d/%d\n\n",temp.
fecha[0],temp.
fecha[1],temp.
fecha[2]); printf("Ingrese el numero de CUIL\n"); printf("CUIL Ingresado: %s\n\n",temp.
cuil); for (i=0; i<12; i++){
printf("Producto Numero %d\n",(i
+1)); printf("Ingrese el Codigo del Producto.\n"); scanf("%d",&temp.
lista[i
].
codprod); printf("Ingrese la cantidad.\n"); scanf("%d",&temp.
lista[i
].
cantidad); printf("Ingrese el precio.\n"); scanf("%d",&temp.
lista[i
].
precio); }
}
float calctot (struct Compra lista [], int n){
float suma;
for (n=0; n<12; n++){
suma+=(lista[n].cantidad)*(lista[n].precio);
}
return suma;
}
Lh: No hagas doble post, utiliza el botón modificar.ya lo solcione, me faltaba el retorno de leer_datos