Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-02-2009, 08:59   #1
nuvolare
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
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 09:17   #2
Mailor
Senior Member
 
L'Avatar di Mailor
 
Iscritto dal: Mar 2007
Messaggi: 1459
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
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
if (x%2 ==0) pari
else dispari
__________________
root#> man life
No manual entry for life
root#>_
Mailor è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 09:20   #3
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da Mailor Guarda i messaggi
if (x%2 ==0) pari
else dispari
Mi fa piacere poterti dire che pensavo fosse qualcosa del genere, ma siccome sono agli inizzi non riuscivo a trovare l'inghippo giusto!!!
Grazie 1000
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 09:46   #4
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da Mailor Guarda i messaggi
if (x%2 ==0) pari
else dispari
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");
e con questo mi dice sempre che è pari

l'altro
Codice:
		x = numero;
	if (numero/2==0)
		printf("Il numero è pari\n");
	else
	{
		printf("Il numero è dispari\n");
	}
}
Mi dice sempre dispari
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 12:09   #5
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Ti sposto nella sezione Programmazione
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 12:48   #6
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
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");
e con questo mi dice sempre che è pari

l'altro
Codice:
		x = numero;
	if (numero/2==0)
		printf("Il numero è pari\n");
	else
	{
		printf("Il numero è dispari\n");
	}
}
Mi dice sempre dispari
Non conosco C, ma può essere un problema di come è strutturato il codice.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 13:00   #7
Tommo
Senior Member
 
L'Avatar di Tommo
 
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");
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 13:46   #8
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da Tommo Guarda i messaggi
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");
Ho pensato potesse essere una cosa del genere, ed ho dichiarato il codice all`inizio, come, float numero; , ma non e` cambiato nulla.
Quindi che differenza ce` tra dichiararlo all`interno del codice, come hai fatto tu ed all`inizio come ho fatto io?
Grazie
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 14:09   #9
Tommo
Senior Member
 
L'Avatar di Tommo
 
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?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 15:24   #10
cionci
Senior Member
 
L'Avatar di cionci
 
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");
% è l'operatore di resto fra interi...il resto fra divisioni float non esiste

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.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:09   #11
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da cionci Guarda i messaggi
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");
% è l'operatore di resto fra interi...il resto fra divisioni float non esiste

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.
Il mio codice è questo ed a me da sempre pari
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");

}
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:10   #12
cionci
Senior Member
 
L'Avatar di cionci
 
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)
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:15   #13
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da cionci Guarda i messaggi
scanf("%d", &x);
x = numero;
if (numero%2==0)
Ma non è uguale al mio?
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:18   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Ma non è uguale al mio?
Ho segnato in rosso l'errore
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:25   #15
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ho segnato in rosso l'errore
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");

}
Ma sempre pari mi da!
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:35   #16
lor84
Member
 
L'Avatar di lor84
 
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
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");

}
Ma sempre pari mi da!
innanzitutto il controllo non lo devi fare su numero che non è inizializzato ma su x (toglilo numero che non serve).. poi come detto prima devi usare come tipo un float anzichè un int
lor84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:46   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da lor84 Guarda i messaggi
poi come detto prima devi usare come tipo un float anzichè un int
Ma assolutamente NO, l'ho già scritto sopra.
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...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 16:52   #18
lor84
Member
 
L'Avatar di lor84
 
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ma assolutamente NO, l'ho già scritto sopra.
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...
si giusto...(non avevo letto il post sopra)
lor84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 17:04   #19
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ma assolutamente NO, l'ho già scritto sopra.
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...
Ok, ho capito...
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");

}
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 17:06   #20
cionci
Senior Member
 
L'Avatar di cionci
 
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
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
Grazie al Very Large Telescope dell'ESO ...
Microsoft usava tecnici cinesi nei proge...
Leapmotor T03, scatta la promozione per ...
Galaxy Watch8 già a 279€: incredibile sc...
Oggi svendono i portatili ASUS Vivobook:...
Eureka J15 Ultra: potenza record e lavag...
Tesla gioca il jolly: valanga di sconti ...
Le aziende licenziano, e l'IA c'entra mo...
Crollano di prezzo gli stupendi TV 4K OL...
Prodotti pericolosi su Temu e Shein: l'U...
JLR annuncia il ritardo del Range Rover ...
Stufi di tagliare il prato? Chi prova un...
Verso un vaccino universale contro il ca...
L'iPhone 17 Air con batteria 'mini' da m...
Iliad offre l'upgrade gratuito ai propri...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v