Oppure

Loading
02/11/08 11:37
gtedeski
ciao a tutti,ho dei problemi a risolvere questo programma in C: "dati 10 numeri trovare la somma,la media,il prodotto e il massimo". utilizzando un menu!spero nel vostro aiuto,risolvendolo e vi ringrazio anticipatamente
aaa
02/11/08 11:39
WARRIOR
Hai problemi nella logica o nell'implementazione?
aaa
02/11/08 18:23
gtedeski
sinceramente vorrei vederlo risolto per capire dove nn riesco a farlo
aaa
04/11/08 14:02
Overflow
devi postare il codice che hai fatto e noi possiamo darti una mano a correggerlo e a capire dove sbagli.
Comunque visto che è una cosa semplice ti posto un codice semplice che ti ho fatto:
#include <stdio.h>
#include <stdlib.h>

int menu();
int somma(int *numeri, int nnum);

int main(void) {

	int *numeri, i;
	int scelta, nnum=0,  prodotto, max;

	while ((scelta = menu()) != 6)
	{
		switch(scelta)
		{
		case 1:
			printf("%s\n","Inserisci il numero massimo dei numeri da aggiungere:");
			scanf("%d",&nnum);
			numeri = malloc(nnum);
			printf("%s\n","Inserisci i numeri uno per volta dando {ENTER} per ongni numero:");
			for(i=0;i<nnum;i++)
				scanf("%d",&numeri[i]);
			break;
		case 2:
			if(nnum>0)
				printf("La somma è %d \n",somma(numeri,nnum));
			break;
		case 3:
			if(nnum>0)
				printf("La media è %d \n",(somma(numeri,nnum))/nnum);
			break;
		case 4:
			if(nnum<=0)
				break;
			prodotto=1;
			for(i=0;i<nnum;i++)
				prodotto = prodotto * numeri[i];
			printf("Il prodotto è %d \n",prodotto);
			break;
		case 5:
			if (nnum<=0)
				break;
			max = numeri[0];
			for(i=0;i<nnum;i++)
				if(numeri[i]>max)
					max=numeri[i];

			printf("Il valore maggiore è %d \n",max);
			break;
		}
	}
	return EXIT_SUCCESS;
}

int menu()
{
	int scelta;
	printf("-----------------------------------\n");

	printf("1.%s\n","Inserire numeri");
	printf("2.%s\n","Calcola la somma");
	printf("3.%s\n","Calcola il valore medio");
	printf("4.%s\n","Calcola il prodotto");
	printf("5.%s\n","Calcola il valore maggiore");
	printf("6.%s\n","Esci");
	printf("-----------------------------------\n");
	printf("%s","Scegli cosa vuoi fare:");
	scanf("%d",&scelta);
	return scelta;
}

int somma(int *numeri, int nnum)
{
	int somma =0, i;
	for(i=0;i<nnum;i++)
		somma += numeri[i];
	return somma;
}
aaa
04/11/08 19:17
gtedeski
ho provato a compilarlo ed eseguirlo e mi da questo errore: numeri = malloc(nnum);
come mai?
aaa
05/11/08 15:03
Overflow
credevo funzionasse.
Allora modifica
numeri = malloc(nnum);

con
numeri = (int *) malloc(nnum * sizeof(int*));

cosi dovrebbe andare.
aaa
05/11/08 16:49
gtedeski
si così si...grazie mille
aaa