Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini è uno smartwatch compatto capace di offrire un'esperienza completa di monitoraggio della salute e fitness con una cassa da 43 mm che può adattarsi a qualsiasi tipo di polso, dal più grande al - soprattutto - più piccolo. Con l'architettura dual-chip e un'autonomia che può coprire due giorni con tranquillità, rappresenta la soluzione ideale per chi cerca prestazioni premium in un formato ridotto.
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-10-2007, 10:43   #1
nongio
Senior Member
 
L'Avatar di nongio
 
Iscritto dal: May 2004
Città: Pianeta Terra
Messaggi: 1593
[C] problema esercizio semplice

Ciao a tutti, ho da fare un esercizio che prende in input un numero di 4 cifre, devo decriptarlo nel seguente modo:

Prendere ogni cifra e modificarla cosi : sommare la cifra a 7 e dividere per 10, utilizzare il resto della divisione come numero cifrato, e scambiare la 4a cifra con la seconda e la 3a con la prima...
io l'ho fatto cosi'

Codice:
#include <stdio.h>

int main ()

{

	int num;
	int cif1;
	int cif2;
	int cif3;
	int cif4;
	int crit1;
	int crit2;
	int crit3;
	int crit4;
	

	printf ("Inserire un numero di 4 cifre:");
	scanf ("%d", &num);
	
	while (num != -1)
		
		{

			cif4 = num/1000;
			cif3 = num/100 - cif4 * 10;
			cif2 = num/10 - cif3 * 10 - cif4 * 100;
			cif1 = num/1 - cif2 * 10 - cif3 * 100 - cif4 * 1000;
			
			crit4 = (cif4 + 7) % 10;
			crit3 = (cif3 + 7) % 10;
			crit2 = (cif2 + 7) % 10;
			crit1 = (cif1 + 7) % 10;
			printf ("%d%d%d%d\n\n", crit2, crit1, crit4, crit3);
		
			printf ("Inserire un numero di 4 cifre:");
			scanf ("%d", &num);
			
		}
			

	return 0;
}
Questo funziona...
Ora devo fare il procedimento inverso...solo che ho dei problemi... non mi funziona come vorrei...
Io l'ho scritto cosi':
Codice:
#include <stdio.h>

int main ()

{

	int num;
	int cif1;
	int cif2;
	int cif3;
	int cif4;
	int crit1;
	int crit2;
	int crit3;
	int crit4;
	

	printf ("Inserire un numero di 4 cifre:");
	scanf ("%d", &num);
	
	while (num != -1)
		
		{

			crit4 = num/1000;
			crit3 = num/100 - cif4 * 10;
			crit2 = num/10 - cif3 * 10 - cif4 * 100;
			crit1 = num/1 - cif2 * 10 - cif3 * 100 - cif4 * 1000;
			
			if (crit4 >= 7)
			{
				cif4 = crit4  -7;
                        }
			else
			{
				cif4 = crit4 + 10 -7;
			}
			if ( crit3 >= 7)
			{
				cif3 = crit3  -7;
			}
			else
			{
				cif3 = crit3 +10 -7;
			}
			if (crit2 >= 7)
			{
				cif2 = crit2 -7;
			}
			else
			{
				cif2 = crit2 +10-7;
			}
			if (crit1 >=7)
			{
				cif1 = crit1 -7;
			}
			else
			{
				cif1 = crit1 +10 -7;
			}
			
			printf ("%d%d%d%d\n\n", cif2, cif1, cif4, cif3);
		
			printf ("Inserire un numero di 4 cifre:");
			scanf ("%d", &num);
			
		}
			

	return 0;
}
vi posto un esempio di quel che succede

Codice:
$ ./crittog
Inserire un numero di 4 cifre:1234
0189

$ ./decripter
Inserire un numero di 4 cifre:0189
203905919711311530503-91076686
non torna 1234!!!!!!!!!!!!!!!!!!!!!
mi aiutate
__________________
|Antec Nine Hundred by me~LC Titan 560W~Asus P5QD Turbo~Intel Q9550~Corsair Dominator xms2-8500~Sapphire HD5870~SB Audigy X-Fi XtremeGamer~Samsung 320Gb sataII~LG dvd-rw~2xAcer P193w + Samsung SM 2243SN~Logitech z-5300~|Notebook MSI S271| Fastweb 20Mb ~ BOINC GOD - 15 UOTD
nongio è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2007, 11:14   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Allora:

- In primo luogo, ti consiglio di studiare gli array; ti risparmieresti un sacco di codice da scrivere. Per scrivere un semplice programmino hai dovuto incollare una pagina di codice, non ti pare un po' troppo?

- L'errore è qui, ed è duplice:
Codice:
crit4 = num/1000;
crit3 = num/100 - cif4 * 10;
crit2 = num/10 - cif3 * 10 - cif4 * 100;
crit1 = num/1 - cif2 * 10 - cif3 * 100 - cif4 * 1000;
1) Il primo è concettuale: hai dichiarato cif1,2,3,4 e li utilizzi nella parte destra di queste espressioni ma NON LI HAI INIZIALIZZATI; mai utilizzare una variabile in c/c++ senza prima averla inizializzata. Ad esempio:
Codice:
 cif1 = cif2 = cif3 = cif4 = 0 ;
2) crit3 deve essere = num/100 - crit3*10, non cif3
Lo stesso vale per crit2 e crit1: devi sempre usare critX, e non cifX nelle espressioni a destra dell'uguale

Impara ad usare gli array!
Ciao
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2007, 15:56   #3
nongio
Senior Member
 
L'Avatar di nongio
 
Iscritto dal: May 2004
Città: Pianeta Terra
Messaggi: 1593
A parte che sono un pirla e tu hai ragione 'errore era banalissimo e non lo trovavo...pensa te..
Non ho utilizzato gli array perche' l'esercizio non richiedeva l'utilizzo di array... cioe' dovevo farlo solo e soltanto con l'if e il while..

grazie mille!
__________________
|Antec Nine Hundred by me~LC Titan 560W~Asus P5QD Turbo~Intel Q9550~Corsair Dominator xms2-8500~Sapphire HD5870~SB Audigy X-Fi XtremeGamer~Samsung 320Gb sataII~LG dvd-rw~2xAcer P193w + Samsung SM 2243SN~Logitech z-5300~|Notebook MSI S271| Fastweb 20Mb ~ BOINC GOD - 15 UOTD
nongio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Caos nell'impero Musk: perché i m...
Microsoft Sentinel si evolve e diventa u...
La navicella spaziale Orion per le missi...
Gmail, gli utenti aziendali possono invi...
Il Moige contro Meta e TikTok: via a un'...
La NASA potrebbe impiegare dei lander lu...
Bezos: l'intelligenza artificiale vive u...
Allarme sicurezza: TikTok suggerisce con...
Apple non potrà più pubbli...
Prime Day fa volare MOVA: super sconti f...
Hoover HMC5 è l'alleato perfetto contro ...
LG porta webOS 25 sui TV degli anni pass...
ECOVACS DEEBOT T50 OMNI in offerta a 399...
TIM Enterprise investirà 1 miliar...
Google Pixel 10, prezzo bomba di 649€ su...
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: 17:53.


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