|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#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 |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1459
|
Quote:
else dispari
__________________
root#> man life No manual entry for life root#>_ |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
|
|
|
|
|
|
#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");
}
}
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Ti sposto nella sezione Programmazione
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
|
|
|
|
|
#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");
|
|
|
|
|
|
#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 |
|
|
|
|
|
|
#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? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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. |
|
|
|
|
|
#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 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
scanf("%d", &x);
x = numero; if (numero%2==0) |
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#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");
}
|
|
|
|
|
|
#16 | |
|
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
Quote:
|
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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... |
|
|
|
|
|
|
#18 | |
|
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
Quote:
|
|
|
|
|
|
|
#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");
}
|
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma non mi hai detto ancora quale errore avevi fatto
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:10.



















