stgww
31-03-2008, 21:24
Ciao, sono sempre io alle prese con C, pensavo di aver fatto un buon lavoro, ma a quanto pare c'è qualcosa che non va, mi aiutate? Thx a lot
#include <stdio.h>
#include <stdlib.h>
/*
Un grande Magazzino è formato da N reparti. Creare 2 vettori contenenti il primo l'elenco dei codici dei reparti
e il secondo gli incassi di febbraio corrispondenti ai reparti inseriti.
Calcolare:
a-incasso totale del mese di febbraio;
b-incasso medio mensile di reparto. Usare due funzioni, una per la somma e una per la media;
c-incasso e codice di quale reparto ha venduto di più e quale di meno;
d-la percentuale di chi ha venduto di più nella media.
*/
int departments=0; //Numero reparti del magazzino
int codes[100]; //Vettore contenente i codici
float receipts[100]; //Vettore contenete gli incassi per ogni reparto
int load() //Con questa funzione carichiamo i dati del magazzino chiedendo all'utente di inserirli
{
int i;
printf("In quanti reparti è suddiviso il magazzino ?\n");
scanf("%i",&departments);
for(i=0;i<departments;i++){
printf("Inserici codice numerico reparto\n");
scanf("%i",&codes[i]);
printf("Inserici incasso di questo reparto\n");
scanf("%f",&receipts[i]);
}
return 0;
}
int menu ()//In questa funzione scriviamo il menu di scelta con il quale l'utente potrà orientarsi all'interno delle diverse funzioni
{
int choice=0;
printf("Cosa vuoi fare ?\n\n1)Visualizza incasso totale mensile del Magazzino\n2)Media degli incassi\n3)Quale reparto ha incassato di piu' equale di meno\n4)Percentuale di chi ha incassato di più nella media\n5)Esci\n");
scanf("%i", &choice);
return choice;
}
float addition ()//Usiamo questa funzione per sommare gli incassi di ogni reparto
{
int i;
float sum=0;
for(i=0;i<departments;i++)
sum=sum+receipts[i];
return sum;
}
float average () // Con questa funzione calcoleremo la media degli incassi totali
{
float mean=0, s=0;
s=addition();
mean=s/departments;
return mean;
}
float higher () //Usiamo questa funzione per trovare l'incasso maggiore
{
float big=0;
int i=0;
for(i=0;i<departments;i++)
if(big<receipts[i])
big=receipts[i];
return big;
}
float lower () //Usiamo questa funzione per trovare l'incasso minore
{
float little=receipts[0];
int i=0;
for(i=0;i<departments;i++)
if(little<receipts[i])
little=receipts[i];
return little;
}
int higherreceipt() //Ora confrontiamo con i vari reparti e vediamo a quale appartiene l'incasso maggiore
{
float h=higher();
int i,hr;
for(i=0;i<departments;i++)
if (h==receipts[i])
hr=codes[i];
return hr;
}
int lowerreceipt() //Ora confrontiamo con i vari reparti e vediamo a quale appartiene l'incasso minore
{
float l=lower();
int i,lr;
for(i=0;i<departments;i++)
if (l==receipts[i])
lr=codes[i];
return lr;
}
float percentage () //Con questa funzione calcoliamo la percentuale dell'incasso del reparto che ha incassato di più
{
float perc, sum, big;
sum=addition();
big=higher();
perc=(100*big)/sum;
return perc;
}
int main()
{
int choice, i,c,m,n;
float h,k,j,t,p;
i=load();
c=menu();
choice=menu();
switch(choice) {
case 1 :
h=addition();
printf("Nel corso del mese sono stati incassati euro %f \n", h);
break;
case 2 :
k=average();
printf("La media degli incassi totali per reparto e' %f\n", k);
break;
case 3 :
j=higher();
t=lower();
m=higherreceipt();
n=lowerreceipt();
printf("Il reparto che ha incassto di piu' e' %i e il suo incasso e' stato %f\n", m, j);
printf("Il reparto che ha incassto di meno e' %i e il suo incasso e' stato %f\n", n, t);
break;
case 4 :
p=percentage();
printf("La percentuale dell'incasso del reparto che ha incassato di più e' stata %f\n", p);
break;
case 5 :
break;
}
system ("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
/*
Un grande Magazzino è formato da N reparti. Creare 2 vettori contenenti il primo l'elenco dei codici dei reparti
e il secondo gli incassi di febbraio corrispondenti ai reparti inseriti.
Calcolare:
a-incasso totale del mese di febbraio;
b-incasso medio mensile di reparto. Usare due funzioni, una per la somma e una per la media;
c-incasso e codice di quale reparto ha venduto di più e quale di meno;
d-la percentuale di chi ha venduto di più nella media.
*/
int departments=0; //Numero reparti del magazzino
int codes[100]; //Vettore contenente i codici
float receipts[100]; //Vettore contenete gli incassi per ogni reparto
int load() //Con questa funzione carichiamo i dati del magazzino chiedendo all'utente di inserirli
{
int i;
printf("In quanti reparti è suddiviso il magazzino ?\n");
scanf("%i",&departments);
for(i=0;i<departments;i++){
printf("Inserici codice numerico reparto\n");
scanf("%i",&codes[i]);
printf("Inserici incasso di questo reparto\n");
scanf("%f",&receipts[i]);
}
return 0;
}
int menu ()//In questa funzione scriviamo il menu di scelta con il quale l'utente potrà orientarsi all'interno delle diverse funzioni
{
int choice=0;
printf("Cosa vuoi fare ?\n\n1)Visualizza incasso totale mensile del Magazzino\n2)Media degli incassi\n3)Quale reparto ha incassato di piu' equale di meno\n4)Percentuale di chi ha incassato di più nella media\n5)Esci\n");
scanf("%i", &choice);
return choice;
}
float addition ()//Usiamo questa funzione per sommare gli incassi di ogni reparto
{
int i;
float sum=0;
for(i=0;i<departments;i++)
sum=sum+receipts[i];
return sum;
}
float average () // Con questa funzione calcoleremo la media degli incassi totali
{
float mean=0, s=0;
s=addition();
mean=s/departments;
return mean;
}
float higher () //Usiamo questa funzione per trovare l'incasso maggiore
{
float big=0;
int i=0;
for(i=0;i<departments;i++)
if(big<receipts[i])
big=receipts[i];
return big;
}
float lower () //Usiamo questa funzione per trovare l'incasso minore
{
float little=receipts[0];
int i=0;
for(i=0;i<departments;i++)
if(little<receipts[i])
little=receipts[i];
return little;
}
int higherreceipt() //Ora confrontiamo con i vari reparti e vediamo a quale appartiene l'incasso maggiore
{
float h=higher();
int i,hr;
for(i=0;i<departments;i++)
if (h==receipts[i])
hr=codes[i];
return hr;
}
int lowerreceipt() //Ora confrontiamo con i vari reparti e vediamo a quale appartiene l'incasso minore
{
float l=lower();
int i,lr;
for(i=0;i<departments;i++)
if (l==receipts[i])
lr=codes[i];
return lr;
}
float percentage () //Con questa funzione calcoliamo la percentuale dell'incasso del reparto che ha incassato di più
{
float perc, sum, big;
sum=addition();
big=higher();
perc=(100*big)/sum;
return perc;
}
int main()
{
int choice, i,c,m,n;
float h,k,j,t,p;
i=load();
c=menu();
choice=menu();
switch(choice) {
case 1 :
h=addition();
printf("Nel corso del mese sono stati incassati euro %f \n", h);
break;
case 2 :
k=average();
printf("La media degli incassi totali per reparto e' %f\n", k);
break;
case 3 :
j=higher();
t=lower();
m=higherreceipt();
n=lowerreceipt();
printf("Il reparto che ha incassto di piu' e' %i e il suo incasso e' stato %f\n", m, j);
printf("Il reparto che ha incassto di meno e' %i e il suo incasso e' stato %f\n", n, t);
break;
case 4 :
p=percentage();
printf("La percentuale dell'incasso del reparto che ha incassato di più e' stata %f\n", p);
break;
case 5 :
break;
}
system ("PAUSE");
return 0;
}