View Full Version : [C] ciclo for!
ciao ragazzi,
non riesco a trovare la soluzione a questo esercizio...
qualcuno può darmi una mano?
Si completi l’istruzione for in modo tale che vengano eseguite 5 iterazioni. Non si dichiarino atre variabili o costanti. Ci si limiti a modificare l’istruzione for.
#include <stdio.h>
int indice(void);
int main()
{
for( ; ; )
printf("ciao %d\n",1);
}
int indice(void)
{
static int p=10;
return p--;
}
Fede_Reghe
18-03-2007, 21:05
Non puoi dichiamare una funzione for senza variabili (a meno che non sia un ciclo infinito)
beppegrillo
18-03-2007, 21:09
if (indice() == 5)
break;
cmq è proprio quello l'obiettivo dell'esercizio, modificare il for, per quello che mi pare di aver capito...
si! quello è il bello! :doh:
mapomapo
18-03-2007, 21:25
for(; indice()!=0 ; indice() )
te la spiego subito...devi ragionare sul fatto che hai a disposizione una "static int", per cui questo DEVE NECESSARIAMENTE essere il tuo contatore...
ora: ogni qualvolta chiami la funzione viene restituito il numero e decrementata la "p" che MANTIENE IL SUO VALORE fino alla fine del main()...
così facendo gli dici:
1. ENTRA nel for
2. FINCHE' indice() restituisce un valore diverso da zero (ma se la chiamo SCALO di uno, per questo parte da 10 l'assegnazione nella funzione e non da 5)
3. CHIAMA indice() (con conseguente decremento)
spero di essere stato chiaro, comunque provare per credere :D
Vito
PS
per modifica dell'istruzione for penso si intenda questo, non dichiarare un ciclo infinito e poi dare il break...anche perchè, almeno nella teoria, il C dovrebbe essere un linguaggio orientato alla programmazione strutturata.
GRANDE!!!!!
grazie!!!!!! :D
mapomapo
18-03-2007, 21:38
bella soluzione, anche se per come viene data la traccia, non si capisce assolutamente qual'è l'obiettivo dell'esercizio...
st'esercizio è una porcata (nel senso ke è un aborto)....semplicemente perchè ci sono tanti modi per capire se hai chiaro il concetto di FUNZIONE, variabile STATIC e ciclo FOR....senza per forza scendere nell'inusuale....visto che di solito si fa il classico for(i=0;i<N;i++).....
sono del parere ke saper programmare sia una cosa, entrare nella logica di un altro programmatore come questo esercizio pretende è un abominio.
Vito
io pensavo che static rimaneva sempre a 10
vado a riguardare le varibili static...
sottovento
19-03-2007, 02:39
Un'altra soluzione poteva essere
for( ; indice() && indice(); )
io pensavo che static rimaneva sempre a 10
vado a riguardare le varibili static... una variabile locale static è una variabile a scopo sempre locale ma che funge come una globale: conserva il valore tra una chiamata e l'altra della funzione. invece static usato con le variabili globali ha tutt'altra funzione.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.