|
|
|
|
Strumenti |
12-02-2009, 08:59 | #1 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Programmare in C
Salve a tutti, sto iniziando a programmare come da oggetto, cercavo la sezione adatta, ma non l'ho trovata, quindi mi scuso in caso c'è ne sia una e prego i moderatori in tal caso di postare la discussione nella giusta sezione.
Quindi vi chiedo esiste un modo per far separare i numeri pari d quelli dispari? Grazie |
12-02-2009, 09:17 | #2 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1459
|
Quote:
else dispari
__________________
root#> man life No manual entry for life root#>_ |
|
12-02-2009, 09:20 | #3 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
|
12-02-2009, 09:46 | #4 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Scusami stavo implementando il codice ed ho creato due tipi
Codice:
if (numero%2==0) printf("Il numero è pari\n"); else printf("Il numero è dispari\n"); l'altro Codice:
x = numero; if (numero/2==0) printf("Il numero è pari\n"); else { printf("Il numero è dispari\n"); } } |
12-02-2009, 12:09 | #5 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Ti sposto nella sezione Programmazione
|
12-02-2009, 12:48 | #6 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
12-02-2009, 13:00 | #7 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Credo che numero debba essere float; se è int nella divisione leva la parte dopo la virgola... e quindi numero%2== 0 vale sempre.
Prova con Codice:
if ( ((float)numero)%2==0) printf("Il numero è pari\n"); else printf("Il numero è dispari\n"); |
12-02-2009, 13:46 | #8 | |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Quote:
Quindi che differenza ce` tra dichiararlo all`interno del codice, come hai fatto tu ed all`inizio come ho fatto io? Grazie |
|
12-02-2009, 14:09 | #9 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
assolutamente nessuna
Ho scritto così perchè non sapevo se il tuo "numero" potesse essere cambiato in float. Prova a scrivere 2.0f allora, invece che 2... e sei sicuro che il valore di numero arriva esatto a quel punto dell'esecuzione? |
12-02-2009, 15:24 | #10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53967
|
No, numero non deve essere convertito a float.
Questo è il codice giusto. Codice:
if (numero%2==0) printf("Il numero è pari\n"); else printf("Il numero è dispari\n"); if (numero/2==0) Questa istruzione ti ritorna 0 solo se inserisci il numero 1...per tutti gli altri ti ritorna il risultato della divisione per 2, quendi è ovvio che scriva dispari. |
12-02-2009, 16:09 | #11 | |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Quote:
Codice:
#include <stdio.h> int main() { int x; int numero ; printf("\n"); printf("***Calcola i numeri pari ed i numeri dispari***\n"); printf("\n"); printf("introdurre numero -> "); scanf("%d", &x); x = numero; if (numero%2==0) printf("Il numero è pari\n"); else printf("Il numero è dispari\n"); } |
|
12-02-2009, 16:10 | #12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53967
|
scanf("%d", &x);
x = numero; if (numero%2==0) |
12-02-2009, 16:15 | #13 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
|
12-02-2009, 16:18 | #14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53967
|
|
12-02-2009, 16:25 | #15 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Quindi devo togliere l'errore e farlo
Codice:
#include <stdio.h> int main() { int x; int numero ; printf("\n"); printf("***Calcola i numeri pari ed i numeri dispari***\n"); printf("\n"); printf("introdurre numero -> "); scanf("%d", &x); if (numero%2==0) printf("Il numero è pari\n"); else printf("Il numero è dispari\n"); } |
12-02-2009, 16:35 | #16 | |
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
Quote:
|
|
12-02-2009, 16:46 | #17 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53967
|
Quote:
Non esiste il resto nella divisione fra numeri float. L'operatore % si chiama: resto della divisione intera. Vuole due interi come operandi. Ovviamente poteva utilizzare direttamente x per fare il modulo (altro nome dell'operatore %), ma il problema nel suo codice è l'assegnazione. Non l'avevo segnata in rosso perché la dovesse togliere, l'avevo segnata in rosso perché pensasse a quello che aveva scritto e del perché non è corretto. Legge x, assegna numero a x e poi fa il modulo su numero...c'è qualcosa che non torna... |
|
12-02-2009, 16:52 | #18 | |
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
Quote:
|
|
12-02-2009, 17:04 | #19 | |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Quote:
Siccome lo hai segnato in rosso ho pensato che il tuo intento fosse quello di dirmi che quello era l'errore e quindi l'ho tolto, invece tu mi avevi segnato l'errore per farmi riflettere, che in effetti è la soluzione migliore. Quindi Grazie, 1000 ormai giusto per far vedere il codice incollo qua sotto quello corretto Codice:
#include <stdio.h> int main() { int x; int numero ; printf("\n"); printf("***Calcola i numeri pari ed i numeri dispari***\n"); printf("\n"); printf("introdurre numero -> "); scanf("%d", &x); if (x %2==0) printf("Il numero è pari\n"); else printf("Il numero è dispari\n"); } |
|
12-02-2009, 17:06 | #20 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53967
|
Ma non mi hai detto ancora quale errore avevi fatto
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:24.