Vai al contenuto

Dispari


Gianluck

Messaggi raccomandati

#include <stdio.h>

main(){

int num;

p:

scanf("%d", num);

if (num % 2 == 0) printf("pari");

else printf("dispari");

goto p;

}

NN VA..mi da tutti pari!

 Macbook White 13" 2,0GHz || iMac 20" 2,4 GHz || iPhone 3G 8Gb

Link al commento
Condividi su altri siti

#include <stdio.h>

main(){

int num;

p:

scanf("%d", num);

if (num % 2 == 0) printf("pari");

else printf("dispari");

goto p;

}

NN VA..mi da tutti pari!

Non so come faccia a funzionarti, visto che manca la & prima della variabile passata a scanf()... :cry:

Per il resto dovrebbe funzionarti.

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

strano, io ho provato a compilarlo e mi funziona

#include <stdio.h>

main() {
 int num;
 p:
 scanf("%d", &num);
 if (num % 2 == 0) printf("pari");
 else printf("dispari");
 goto p;
}

Chi è lei? Il numero 2. Chi è il numero 1? Lei è il numero 6.

Link al commento
Condividi su altri siti

strano, io ho provato a compilarlo e mi funziona

#include <stdio.h>

main() {
 int num;
 p:
 scanf("%d", &num);
 if (num % 2 == 0) printf("pari");
 else printf("dispari");
 goto p;
}

anche a me funziona

MacBook Pro 15.4" - Intel Core 2 Duo 2.33 GHz

iPod Shuffle 1Gb Silver

iPod Touch 8Gb

Link al commento
Condividi su altri siti

infatti è proprio quello il problema, non alloca il valore in num che di default è 0 e quindi sempre pari :ghghgh:

di default non è sempre 0. Dipende da compilatore a compilatore e da architettura a architettura. Puoi anche trovarci valori a caso.

e per esempio if(num&1) pari else dispari

??

Dovrebbe funzionare (con i rami invertiti). Praticamente controlli il bit meno significativo. Sarebbe curioso scoprire se l'operazione di modulo, ottimizzata dal compilatore, è veloce quanto il confronto bit a bit...

goto in un programma c...brrrrr

iQuote ;)

Wii code: 0734 3828 1483 3595

Mii name: BlackICE

Link al commento
Condividi su altri siti

xke?

Perché è un comando che viene utilizzato in linguaggi "spaghetti like", il C è un linguaggio strutturato quindi il goto è deprecatissimo e inutile (è dimostrato che con i for e gli if puoi fare tutto). Andava bene per il basic del Commodore 64, adesso no. Insomma se vuoi imparare il C/C++ dimentica goto. :fiorellino:

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

Diciamo che il goto si usa solo i particolari casi come la gestione degli errori. Generalmente questa gestione degli errori, di una funzione, prevede una fase finale di cleanup che viene spesso programmata tramite MACRO e l'uso dei goto.

Comunque rimane un costrutto raramente utilizzato, non necessario. Solo in qualche particolare caso (comunque non visible direttamente perchè nascosto nelle macro) permette di scrivere un codice meglio organizzato.

Wii code: 0734 3828 1483 3595

Mii name: BlackICE

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...