Leggi il Topic


Indice del forumMotobarForum Internet & Hi-Tech

   

Pagina 1 di 1
 
aiuto c ... per esperti urgente
6444376
6444376 Inviato: 1 Dic 2008 17:32
Oggetto: aiuto c ... per esperti urgente
 

salve ragazzi sono bloccato con un esercizio ... è il seguente

fare un pproggramma che attraverso due funzioni calcoli il minimo e il massimo di 20 numeri inseriti dall'utente

le funzioni iniziali sono queste due

int max(void)
int min(void)
ma non capisco come farlo lo provato con dev c++ ma mi da errore ... in vari punti uno in particolare con il void perchè il void non da ritornoo e questo lo sapevo e allora mi sono ingegnato poinendo un printf prima del ritorno am non funza

#include <stdio.h>
#include <stdlib.h>
int max (void);
int min (void);
int main()
{int z,max;
z=max;
system("PAUSE");
return 0;
}

int max ()
{int n,max,num,fattore;
int i=0 ;
for (n=0;n<20;n++)
{pritf("inserire numero:\n");
scanf("%i",&num);
if(num>fattore)
{int fattore=num;
}
else
int fattore=fattore;
}
print("il numero max è:%i",fattore);
return 0
{



i due errori me li da sulla riga 26 e 22 una sul int e una sulla chiusura della parentesi
 
6444894
6444894 Inviato: 1 Dic 2008 18:22
 

Ti parlo da profano, ho dato un esamino di C l'anno scorso e non mi ricordo granché... ma che senso ha scrivere il main che contiene una singola procedura che gestisce al contempo l'inserimento e la ricerca?

Se lo dovessi fare io metterei nel main un sistema che riempie un Array e quindi attraverso la procedura scorro l'array e stampo sullo schermo il massimo icon_rolleyes.gif
 
6444991
6444991 Inviato: 1 Dic 2008 18:32
Oggetto: Re: aiuto c ... per esperti urgente
 

Ti ho provato ugualmente a commentare il codice con gli evidenti errori che ho trovato icon_wink.gif

topo ha scritto:

Codice:
int max ()
{int n,max,num,fattore; //non usi mai la variabile max!!
int i=0; //manca l'inizializzazione di "fattore" mettici un: fattore=-30000;
  for (n=0;n<20;n++)
  {pritf("inserire numero:\n");
   scanf("%i",&num);
   if(num>fattore)
   {int fattore=num; //se scrivi int fattore ti ridefinisce la variabile e cancella tutto il lavoro precedente! Leva quell'int!

   }
   else //manca una parentesi {
    int fattore=fattore; //codice ridondante, lascia solo: else {}
   }
    print("il numero max è:%i",fattore);
   return 0 //manca il punto e virgola
{ //parentesi sbagliata! chiudila!!!


Ma non riesco a capire per cosa usi la variabile i icon_confused.gif
 
6445864
6445864 Inviato: 1 Dic 2008 19:48
Oggetto: Re: aiuto c ... per esperti urgente
 

topo ha scritto:
salve ragazzi sono bloccato con un esercizio ... è il seguente

fare un pproggramma che attraverso due funzioni calcoli il minimo e il massimo di 20 numeri inseriti dall'utente

le funzioni iniziali sono queste due

int max(void)
int min(void)
ma non capisco come farlo lo provato con dev c++ ma mi da errore ... in vari punti uno in particolare con il void perchè il void non da ritornoo e questo lo sapevo e allora mi sono ingegnato poinendo un printf prima del ritorno am non funza

#include <stdio.h>
#include <stdlib.h>
int max (void);
int min (void);
int main()
{int z,max;
z=max;
system("PAUSE");
return 0;
}

int max ()
{int n,max,num,fattore;
int i=0 ;
for (n=0;n<20;n++)
{pritf("inserire numero:\n");
scanf("%i",&num);
if(num>fattore)
{int fattore=num;
}
else
int fattore=fattore;
}
print("il numero max è:%i",fattore);
return 0
{



i due errori me li da sulla riga 26 e 22 una sul int e una sulla chiusura della parentesi

detto che il programma è piuttosto banale nn capisco alcune cose....z=max nn ha senso mettere max nell'int è solo una funzione...poi int fattore nn esiste...togli direttamente l'else nn ha senso e l'int nell'if se vuoi te lo faccio per bene
 
6446184
6446184 Inviato: 1 Dic 2008 20:15
 

#include <stdlib.h>
#include <stdio.h>
void mainum(void);
void main()
{
mainum();
system("pause");
}

void mainum(){int n,mac,mic,num;
printf("inserisci n. 1\n");
scanf("%d",&mac);
mic=mac;
for (n=2;n<21;n++)
{printf("inserire n. %d\n",n);scanf("%d",&num);
if(num>mac){ mac=num;}
if(num<mic){ mic=num;}}
printf("il numero max è:%d\n il numero minimo e' %d",mac,mic);
}


questo è quello corretto e funzionante
ah sarebbero 10 euro icon_lol.gif

Ultima modifica di fedrano il 2 Dic 2008 19:12, modificato 1 volta in totale
 
6446288
6446288 Inviato: 1 Dic 2008 20:24
 

grazie a tutt ... ma nel tuo esempio non abbiamo ancora fatto quelle lbrerie ...
 
6446357
6446357 Inviato: 1 Dic 2008 20:31
 

topo ha scritto:
grazie a tutt ... ma nel tuo esempio non abbiamo ancora fatto quelle lbrerie ...

quali librerie?Oo
le librerie sono sempre stdlib e stdio...mi sa che hai fatto su un pò di casino icon_asd.gif

Ultima modifica di fedrano il 1 Dic 2008 20:33, modificato 1 volta in totale
 
6446369
6446369 Inviato: 1 Dic 2008 20:32
 

#include <stdio.h>
#include <stdlib.h>
int max (void);
int min (void);
int main()
{int z,max;
z=max_();
system("PAUSE");
return 0;
}
int max_()
{int n,max,num,fattore;
int i=0 ;
for (n=0;n<20;n++)
{ pritf("inserire numero:\n");
scanf("%i",&num);
if(num>fattore)
{int fattore=num;
}
else
{
print("il numero max è:%i",fattore);
return 0
}

adesso mi dice che l'ultimo errore è nell'ultima parentei ma non capisco perchè??'''
 
6446393
6446393 Inviato: 1 Dic 2008 20:34
 

topo ha scritto:
#include <stdio.h>
#include <stdlib.h>
int max (void); errore è una funzione void
int min (void); errore è una funzione void
int main()
{int z,max; inutile e senza senso
z=max_();
system("PAUSE");
return 0;senza senso dato che il main è una funzione void e nn restituisce nulla
}
int max_()
{int n,max,num,fattore;
int i=0 ;
for (n=0;n<20;n++)
{ pritf("inserire numero:\n");printf
scanf("%i",&num);
if(num>fattore)errore fattore nn è inizializzato
{int fattore=num;errore nn si usa l'int
}
else
{
print("il numero max è:%i",fattore);printf
return 0 errore è una funzione void nn dai ritorno
}

adesso mi dice che l'ultimo errore è nell'ultima parentei ma non capisco perchè??'''

fidati stai facendo su un casino letale....con robe che nn stanno ne in cielo ne in terra...
 
6447523
6447523 Inviato: 1 Dic 2008 21:55
 

fedrano ha scritto:

fidati stai facendo su un casino letale....con robe che nn stanno ne in cielo ne in terra...

Beh spesso alla main si fa restituire uno zero che indica ai processi sovrastanti che non vi sono stati problemi nell'esecuzione icon_wink.gif

@Topo -> a parte altri errori già elencati il problema della parentesi è che ti sei dimenticato di richiuderla subito dopo averla aperta dopo l'else icon_wink.gif
 
6448431
6448431 Inviato: 1 Dic 2008 22:58
 

urano88 ha scritto:

Beh spesso alla main si fa restituire uno zero che indica ai processi sovrastanti che non vi sono stati problemi nell'esecuzione icon_wink.gif

@Topo -> a parte altri errori già elencati il problema della parentesi è che ti sei dimenticato di richiuderla subito dopo averla aperta dopo l'else icon_wink.gif

il problema e che lui deve usare void, ovvero funzione che non restituisce nessun valore (perchè mettere il return è illogico)
 
6454817
6454817 Inviato: 2 Dic 2008 18:47
 

urano88 ha scritto:

Beh spesso alla main si fa restituire uno zero che indica ai processi sovrastanti che non vi sono stati problemi nell'esecuzione icon_wink.gif

@Topo -> a parte altri errori già elencati il problema della parentesi è che ti sei dimenticato di richiuderla subito dopo averla aperta dopo l'else icon_wink.gif

scusa è se fai tornare uno 0...significa che z=0....che senso avrebbe questo? icon_eek.gif nessuno icon_eek.gif il mio programma funziona alla perfezione..e nn capisco di quali libreria parli...se ho usato le sue.... icon_eek.gif
 
6455053
6455053 Inviato: 2 Dic 2008 19:08
 

oggi sono nadato avanti al più presto metto la continuazione ... adesso mi da solo un errore ovvero non mi da il massimo ma sempre ... appena troovo la pennetta lometto ...

la libreria usata da te è conio.h
 
6455081
6455081 Inviato: 2 Dic 2008 19:10
 

topo ha scritto:
oggi sono nadato avanti al più presto metto la continuazione ... adesso mi da solo un errore ovvero non mi da il massimo ma sempre ... appena troovo la pennetta lometto ...

la libreria usata da te è conio.h

ops...XD hai ragione l'ho messa per abitudine ma funzione benissimo anche senza...provare per credere icon_wink.gif
 
6455509
6455509 Inviato: 2 Dic 2008 20:02
 

fedrano ha scritto:

scusa è se fai tornare uno 0...significa che z=0....che senso avrebbe questo? icon_eek.gif nessuno icon_eek.gif il mio programma funziona alla perfezione..e nn capisco di quali libreria parli...se ho usato le sue.... icon_eek.gif

Vedi, quando scrivevo in C l'anno scorso (sotto compilatore gnu-Linux) il return 0 alla fine del main non mancava mai ed il mio prof mi avrebbe segnato errore la sua assenza, la spiegazione te l'ho già data, è un controllo che viene rimandato alle istanze superiori.
 
6455660
6455660 Inviato: 2 Dic 2008 20:19
 

il return nel void non server giusto siccome il void non ha ritorno ....
 
6456399
6456399 Inviato: 2 Dic 2008 21:22
 

topo ha scritto:
il return nel void non server giusto siccome il void non ha ritorno ....

MA NEL MAIN SI!!!
 
Mostra prima i messaggi di:





Pagina 1 di 1

Non puoi inserire nuovi Topic
Non puoi rispondere ai Topic
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
 
Indice del forumMotobarForum Internet & Hi-Tech

Forums ©