Gogeta ss4
15-09-2004, 19:02
Ecco il codice:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct prodotto //Struttura del prodotto
{
char nome_prodotto[50];
char descrizione_prodotto[1000];
int quantita_vendute;
int prezzo_vendita;
int prezzo_acquisto;
int guadagno_struttura;
};
struct guadagno_totale //Struttura che conta il guadagno totale
{
float guadagno_tot;
};
typedef struct guadagno_totale tot;
typedef struct prodotto articolo; /*Ridefinizione di struct prodotto in
articolo*/
//Prototipi di funzione
int insert (articolo [],int); //Funzione che carica i dati in struttura.
float guadagno (articolo [],int,tot); //Funzione che calcola il guadagno.
void main()
{
int scelta,controllo,totale,x;
articolo vettore[1000];
tot total;
do
{
printf("\n MENU' PRINCIPALE");
printf("\n 1)Inserisci Prodotto");
printf("\n 2)Controlla Il Guadagno Totale Della Giornata");
printf("\n 0)Uscita dal programma");
printf("\n Scelta: ");
scanf ("%d", &scelta);
switch(scelta)
{
case 1: controllo=insert(vettore,x);
break;
case 2: totale=guadagno(vettore,controllo,total);
printf("\nFinora hai guadagnato %d Euro", controllo);
break;
case 0: exit(EXIT_SUCCESS);
default: printf("\nOpzione non valida!");
}
} while(scelta!=0);
}
//DEFINIZIONE DELLE FUNZIONI
int insert(articolo vettore[],int x)
{
int i;
printf("\nQuanti Prodotti hai venduto?(MAX 1000): ");
scanf ("%d", &x);
for(i=0;i<x;i++)
{
printf("\nInserisci il nome del prodotto venduto (MAX 50 PAROLE): ");
fflush(stdin);
gets (vettore[i].nome_prodotto);
printf("\nDescrivi Il Prodotto (MAX 1000 PAROLE): ");
fflush(stdin);
gets (vettore[i].descrizione_prodotto);
printf("\nQuanti prodotti hai venduto?: ");
scanf ("%d", &vettore[i].quantita_vendute);
printf("\nInserisci il prezzo di acquisto del prodotto: ");
scanf ("%d", &vettore[i].prezzo_acquisto);
printf("\nA quanto hai venduto il prodotto?: ");
scanf ("%d", &vettore[i].prezzo_vendita);
}
return x;
}
float guadagno (articolo vettore[],int controllo,tot total)
{
int prezzo_vend,prezzo_acqu,quantita_vend,i,totale;
for(i=0;i<controllo;i++)
{
prezzo_vend=vettore[i].prezzo_vendita;
prezzo_acqu=vettore[i].prezzo_acquisto;
quantita_vend=vettore[i].quantita_vendute;
totale=(prezzo_vend-prezzo_acqu)*quantita_vend;
vettore[i].guadagno_struttura=totale;
}
for(i=0;i<controllo;i++)
total.guadagno_tot=total.guadagno_tot+vettore[i].guadagno_struttura;
return total.guadagno_tot;
}
Appena avvio il programma al VOID MAIN () (neanche entra nel corspo del programma), mi da un errore e mi dice:
"Thread stopped: c:\Document ad settings\games\desktop\struct.exe Fault: access violition 0x40108b: write of address 0x30f88"
Ma che è??
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct prodotto //Struttura del prodotto
{
char nome_prodotto[50];
char descrizione_prodotto[1000];
int quantita_vendute;
int prezzo_vendita;
int prezzo_acquisto;
int guadagno_struttura;
};
struct guadagno_totale //Struttura che conta il guadagno totale
{
float guadagno_tot;
};
typedef struct guadagno_totale tot;
typedef struct prodotto articolo; /*Ridefinizione di struct prodotto in
articolo*/
//Prototipi di funzione
int insert (articolo [],int); //Funzione che carica i dati in struttura.
float guadagno (articolo [],int,tot); //Funzione che calcola il guadagno.
void main()
{
int scelta,controllo,totale,x;
articolo vettore[1000];
tot total;
do
{
printf("\n MENU' PRINCIPALE");
printf("\n 1)Inserisci Prodotto");
printf("\n 2)Controlla Il Guadagno Totale Della Giornata");
printf("\n 0)Uscita dal programma");
printf("\n Scelta: ");
scanf ("%d", &scelta);
switch(scelta)
{
case 1: controllo=insert(vettore,x);
break;
case 2: totale=guadagno(vettore,controllo,total);
printf("\nFinora hai guadagnato %d Euro", controllo);
break;
case 0: exit(EXIT_SUCCESS);
default: printf("\nOpzione non valida!");
}
} while(scelta!=0);
}
//DEFINIZIONE DELLE FUNZIONI
int insert(articolo vettore[],int x)
{
int i;
printf("\nQuanti Prodotti hai venduto?(MAX 1000): ");
scanf ("%d", &x);
for(i=0;i<x;i++)
{
printf("\nInserisci il nome del prodotto venduto (MAX 50 PAROLE): ");
fflush(stdin);
gets (vettore[i].nome_prodotto);
printf("\nDescrivi Il Prodotto (MAX 1000 PAROLE): ");
fflush(stdin);
gets (vettore[i].descrizione_prodotto);
printf("\nQuanti prodotti hai venduto?: ");
scanf ("%d", &vettore[i].quantita_vendute);
printf("\nInserisci il prezzo di acquisto del prodotto: ");
scanf ("%d", &vettore[i].prezzo_acquisto);
printf("\nA quanto hai venduto il prodotto?: ");
scanf ("%d", &vettore[i].prezzo_vendita);
}
return x;
}
float guadagno (articolo vettore[],int controllo,tot total)
{
int prezzo_vend,prezzo_acqu,quantita_vend,i,totale;
for(i=0;i<controllo;i++)
{
prezzo_vend=vettore[i].prezzo_vendita;
prezzo_acqu=vettore[i].prezzo_acquisto;
quantita_vend=vettore[i].quantita_vendute;
totale=(prezzo_vend-prezzo_acqu)*quantita_vend;
vettore[i].guadagno_struttura=totale;
}
for(i=0;i<controllo;i++)
total.guadagno_tot=total.guadagno_tot+vettore[i].guadagno_struttura;
return total.guadagno_tot;
}
Appena avvio il programma al VOID MAIN () (neanche entra nel corspo del programma), mi da un errore e mi dice:
"Thread stopped: c:\Document ad settings\games\desktop\struct.exe Fault: access violition 0x40108b: write of address 0x30f88"
Ma che è??