Ripetere un'istruzione

di il
5 risposte

Ripetere un'istruzione

Salve a tutti, sono come al solito in difficoltà col mondo dell'informatica. Vorrei chiedere se esiste un comando in c per ripetere un insieme di istruzioni. Il fatto è questo: so delle funzioni for, do-while e while, ma mi sembra che in questi casi bisogna specificare delle condizioni. Nel mio caso non saprei come esprimere tali condizioni. Quindi avrei bisogno di un comando che semplicemente mi ripeta il mio programmino ( anche all'infinito). Il programma è il seguente e vorrei solo ripetere la procedura cosicchè possa inserire dopo ogni risposta del computer un numero e non solo una volta e poi chiudere il prompt.
#include <stdio.h>
#include <stdlib.h>
int N;
char i;
int main()
{
            printf("Inserire un numero intero qualunque \n");
            scanf("%i",&N);
            while (N!=i)
                {if (N%2==0)
                    {
                        printf("Il numero %i e' pari",N);
                    }else printf("Il numero %i non e' pari",N);
    return 0;   }

while (N==i)
{
    printf("Inserisci un numero!");
    return 0;
}
return 0;}

5 Risposte

  • Re: Ripetere un'istruzione

    Hai tre metodi:
    
    for (;;)
    {
        //codice infinito
    }
    
    //oppure
    while(1)
    {
        //codice infinito
    }
    
    LABEL:
        //codice infinito
    goto LABEL;
    
    vodi un pò tu....tanti gli piace il seguente metodo:
    
    #define forever for(;;)
    
    forever
    {
        //codice infinito
    }
    
  • Re: Ripetere un'istruzione

    Se devi scegliere, evita il goto.

    A parte questo, non ha molto senso un ciclo infinito (se non in rarissimi casi). Cerca di approfondire il problema ...
  • Re: Ripetere un'istruzione

    Ehm ho provato ma il programma finisce sempre dopo l'istruzione e non riesco quindi a rifare l'istruzione nel prompt come mai? Se avete delle idee per come fare il ciclo con le condizioni ditelo pure. A me interessa solo ripetere l'istruzione più volte fino a quando magari non premo in un menu ipotetico il tasto 0 e faccio finire il programma.
    #include <stdio.h>
    #include <stdlib.h>
    #define forever for (;;)
    int N;
    char i;
    int main()
    {
        forever
        {
                printf("Inserire un numero intero qualunque \n");
                scanf("%i",&N);
                while (N!=i)
                    {if (N%2==0)
                        {
                            printf("Il numero %i e' pari",N);
                        }else printf("Il numero %i non e' pari",N);
        return 0;   }
    
    while (N==i)
    {
        printf("Inserisci un numero!");
        return 0;
    }
    return 0;}}
  • Re: Ripetere un'istruzione

    Aaaah, capito.

    Allora devi inserire un timer che richiami la funzione tipo ogni decimo di secondo.

    Cerca su google le varie librerie che devi includere (sicuramente time.h, ma non so se ne servono altre).

    ciao
  • Re: Ripetere un'istruzione

    #include <stdio.h>
    #include <stdlib.h>
    //int N; inutile variabile globale
    //char i; inutile variabile globale
    int main()
    {
        int n;//variabili minuscole costanti MAIUSCOLE
    
        printf("-1 to exit\n");
    
        do
        {
                printf("Inserire un numero intero qualunque:");
                scanf("%d",&n);
                //while (N!=i) usi i che non è inizializzata a che scopo?
                //il ciclo rimarrà infinito perchè non variando n non uscirai mai dal ciclo????mha???
    
                //una corretta tabulazione è sempre meglio.
                printf("il numero %d e' ",n);
                if ( n % 2 == 0 )
                {
                    printf("pari\n");
                }
                else
                {
                    printf("dispari\n");
                }
                printf("\n");
        }while(n != -1);
    
        return 0;
    }
Devi accedere o registrarti per scrivere nel forum
5 risposte