Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto programma C
Forum - C/C++ - Aiuto programma C

Avatar
gtedeski (Normal User)
Rookie


Messaggi: 21
Iscritto: 02/11/2008

Segnala al moderatore
Postato alle 12:37
Domenica, 02/11/2008
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

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 12:39
Domenica, 02/11/2008
Hai problemi nella logica o nell'implementazione?


Continuerò a correre, perchè ci sarà sempre qualcuno migliore di me.

Evvia i libri, evitate gli stolti che non li integrano nella loro vita.

http://www.mentisferiche.it

Luca Tedesco
PM Quote
Avatar
gtedeski (Normal User)
Rookie


Messaggi: 21
Iscritto: 02/11/2008

Segnala al moderatore
Postato alle 19:23
Domenica, 02/11/2008
sinceramente vorrei vederlo risolto per capire dove nn riesco a farlo

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 15:02
Martedì, 04/11/2008
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:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int menu();
  5. int somma(int *numeri, int nnum);
  6.  
  7. int main(void) {
  8.  
  9.         int *numeri, i;
  10.         int scelta, nnum=0,  prodotto, max;
  11.  
  12.         while ((scelta = menu()) != 6)
  13.         {
  14.                 switch(scelta)
  15.                 {
  16.                 case 1:
  17.                         printf("%s\n","Inserisci il numero massimo dei numeri da aggiungere:");
  18.                         scanf("%d",&nnum);
  19.                         numeri = malloc(nnum);
  20.                         printf("%s\n","Inserisci i numeri uno per volta dando {ENTER} per ongni numero:");
  21.                         for(i=0;i<nnum;i++)
  22.                                 scanf("%d",&numeri[i]);
  23.                         break;
  24.                 case 2:
  25.                         if(nnum>0)
  26.                                 printf("La somma è %d \n",somma(numeri,nnum));
  27.                         break;
  28.                 case 3:
  29.                         if(nnum>0)
  30.                                 printf("La media è %d \n",(somma(numeri,nnum))/nnum);
  31.                         break;
  32.                 case 4:
  33.                         if(nnum<=0)
  34.                                 break;
  35.                         prodotto=1;
  36.                         for(i=0;i<nnum;i++)
  37.                                 prodotto = prodotto * numeri[i];
  38.                         printf("Il prodotto è %d \n",prodotto);
  39.                         break;
  40.                 case 5:
  41.                         if (nnum<=0)
  42.                                 break;
  43.                         max = numeri[0];
  44.                         for(i=0;i<nnum;i++)
  45.                                 if(numeri[i]>max)
  46.                                         max=numeri[i];
  47.  
  48.                         printf("Il valore maggiore è %d \n",max);
  49.                         break;
  50.                 }
  51.         }
  52.         return EXIT_SUCCESS;
  53. }
  54.  
  55. int menu()
  56. {
  57.         int scelta;
  58.         printf("-----------------------------------\n");
  59.  
  60.         printf("1.%s\n","Inserire numeri");
  61.         printf("2.%s\n","Calcola la somma");
  62.         printf("3.%s\n","Calcola il valore medio");
  63.         printf("4.%s\n","Calcola il prodotto");
  64.         printf("5.%s\n","Calcola il valore maggiore");
  65.         printf("6.%s\n","Esci");
  66.         printf("-----------------------------------\n");
  67.         printf("%s","Scegli cosa vuoi fare:");
  68.         scanf("%d",&scelta);
  69.         return scelta;
  70. }
  71.  
  72. int somma(int *numeri, int nnum)
  73. {
  74.         int somma =0, i;
  75.         for(i=0;i<nnum;i++)
  76.                 somma += numeri[i];
  77.         return somma;
  78. }


PM Quote
Avatar
gtedeski (Normal User)
Rookie


Messaggi: 21
Iscritto: 02/11/2008

Segnala al moderatore
Postato alle 20:17
Martedì, 04/11/2008
ho provato a compilarlo ed eseguirlo e mi da questo errore: numeri = malloc(nnum);
  come mai?

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 16:03
Mercoledì, 05/11/2008
credevo funzionasse.
Allora modifica
Codice sorgente - presumibilmente Plain Text

  1. numeri = malloc(nnum);


con
Codice sorgente - presumibilmente Plain Text

  1. numeri = (int *) malloc(nnum * sizeof(int*));


cosi dovrebbe andare.

PM Quote
Avatar
gtedeski (Normal User)
Rookie


Messaggi: 21
Iscritto: 02/11/2008

Segnala al moderatore
Postato alle 17:49
Mercoledì, 05/11/2008
si così si...grazie mille

PM Quote