Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-10-2007, 11: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, 12: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, 16: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


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Huawei annuncia tre prodotti: uno smartp...
La Cina sta proseguendo i test del razzo...
Sharing a Genova: via i monopattini, lim...
Sophie Turner è Lara Croft: prime...
Xiaomi, Apple, Samsung, Dreame, Roborock...
L'Antitrust italiano contro Activision B...
Il primo SUV R2 di Rivian esce dalla cat...
Auricolari Bluetooth a rischio: la falla...
Modificare il nuovo indirizzo Gmail è fi...
TV 4K in offerta su Amazon: QLED Hisense...
Tesla ha ora la sua raffineria di litio:...
Ancora aumenti per Fastweb: nuove condiz...
GeForce RTX 5070 Ti: intervengono ASUS e...
Xiaomi Redmi Note 15 Pro subito giù di p...
SiFive adotta NVLink Fusion: RISC-V si i...
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:14.


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