[C] Istruzione goto

di il
3 risposte

[C] Istruzione goto

Buongiorno a tutti, è il mio primo post.
Ho provato a vedere la funzione goto, che di per sé mi sembrava abbastanza basilare; il compilatore non riesce a eseguirmi questo programma:
#include<stdio.h>
#include<stdlib.h>
int main () {
int NUM;
NUM = 0;
int i;
i=0;
printf(“Inserisci un numero: \n ”);
scanf(“%d”,NUM);
etichetta:
printf(“Il numero (ciclo %d) e’: %d \n”,i,NUM);
if(i<=NUM)
i++;
goto etichetta;
return 0;
}

3 Risposte

  • Re: [C] Istruzione goto

    Controlla BENE come e' scritto QUESTO statement:
    
    scanf(“%d”,NUM);
    
    e poi RAGIONA (BENE) su come DOVREBBE funzionare QUESTO pezzo di codice e su COME invece funziona:
    
    etichetta:
        printf(“Il numero (ciclo %d) e’: %d \n”,i,NUM);
        if(i<=NUM)
            i++;
    goto etichetta;
    
  • Re: [C] Istruzione goto

    migliorabile ha scritto:


    Controlla BENE come e' scritto QUESTO statement:
    
    scanf(“%d”,NUM);
    
    e poi RAGIONA (BENE) su come DOVREBBE funzionare QUESTO pezzo di codice e su COME invece funziona:
    
    etichetta:
        printf(“Il numero (ciclo %d) e’: %d \n”,i,NUM);
        if(i<=NUM)
            i++;
    goto etichetta;
    
    Grazie mille, ho capito cosa ho sbagliato:
    1) scanf(“%d”,&NUM); ( mancava la & prima di NUM )

    2) etichetta:
    printf(“Il numero (ciclo %d) e’: %d \n”,i,NUM);
    i++
    if(i<=NUM)
    goto etichetta; ( l’incremento andava prima del if, e non dopo )
  • Re: [C] Istruzione goto

    Intanto goto è una istruzione e non una funzione.

    Comunque non dovresti utilizzarla, al suo posto usa le istruzioni per gestire cicli.
Devi accedere o registrarti per scrivere nel forum
3 risposte