Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-12-2004, 11:58   #1
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
[C] Aiutino per un programma su liste concatenate

Questo è un programma che mi è stato assegnato all'università... Ho qualche problema sia nelle liste (che cmq ho fatto.. non so quanto bene)... Se qualcuno di voi potesse darmi qualche dritta, mi aiuterebbe molto...


Descrizione
Il massimo comun divisore di due numeri e' il più grande divisore comune dei due numeri. Ad esempio, il massimo comun divisore di 24 e 36 è 12. Esiste un antichissimo modo per determinare il Massimo Comun Divisore (MCD) di due numeri interi strettamente positivi, dovuto a Euclide, definito dalle seguenti equazioni ricorsive:
MCD(n,n) = n
MCD(m,n) = MCD(m-n,n) se m>n
MCD(m,n) = MCD(m,n-m) se n>m
Scopo del programma sarà quello di implementare l'algoritmo di Euclide, in modo che funzioni con interi di dimensione arbitraria, quindi con un numero di cifre non previsto a priori. Dovrete implementare gli interi come liste di cifre decimali. Vi suggerisco di implementare almeno tre funzioni: uguale, minore e differenza. uguale dira' se due interi così rappresentati sono uguali. minore dirà se il primo è minore del secondo. differenza restituisce una lista di cifre che rappresenta la differenza di due interi rappresentati come liste di cifre.
Il vostro programma dovrà:


Input
prendere in input una sequenza di cifre decimali. Qualsiasi numero minore di 0 o maggiore di 9 sarà interpretato come un terminatore di un numero. Il primo terminatore dividerà il primo numero dal secondo, mentre il secondo terminatore indicherà la fine dell'input.

Output
produrre in output il Massimo Comun Divisore dei due numeri. Il numero andrà stampato stampando ciascuna cifra con il formato:

%1d
in modo che il numero appaia come una sequenza di cifre senza spazi tra una cifra e l'altra.
IMPORTANTE

non far produrre al programma altri output oltre a quelli richiesti.
Ecco un esempio di input del programma:


1
9
7
2
6
1
0
6
4
-1
5
1
0
7
9
1
8
2
0
10

In questo caso il programma dovrà calcolare l'MCD tra 197261064 e 510791820 e restituire in output il numero 21252. I numeri dell'esempio cadono ancora nel campo intero, ma il vostro programma dovrà funzionare correttamente anche se i numeri in input e output hanno centinaia o migliaia di cifre (certamente finchè c'è memoria...).

Attenzione NON producete nessuna altra scritta oltre i numeri, altrimenti il test automatico del vostro programma fallirà miseramente!

Il codice che ho scritto io per ora è questo...
Codice:
struct node
{
int info;
struct node *next;
};
struct node *p,*q,*c,*z,*temp;
int n; p=NULL; z=NULL;
scanf("%d",&n);
while ((n>=0)&&(n<=9))
{
q=(struct node *)
malloc(sizeof(struct node));
(*q).info=n;
(*q).next=p;
p=q; 
scanf("%d",&n);
} 
scanf("%d",&n);
while ((n>=0)&&(n<=9))
{
c=(struct node *)
malloc(sizeof(struct node));
(*c).info=n;
(*c).next=z;
z=c;
scanf("%d",&n);
}
}
Grazie a chiunque mi aiuterà

Ultima modifica di Anccos : 15-12-2004 alle 12:16.
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 20:03   #2
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
up
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2004, 08:52   #3
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
Possibile che nessuno può aiutarmi?
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2004, 09:55   #4
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
vabbè grazie lo stesso
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2004, 11:45   #5
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
up
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2004, 12:32   #6
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Con il codice scritto sopra ti costruisci una lista lincata di nodi, ognuno dei quali contiene una cifra; il codice dovra essere pero inserito all'interno di una funzione che si occupera quindi di leggere i due numeri da input; le variabili p e z possono essere dichiarate come globali oppure possono essere restituite dalla funzione stessa come risultato, magari la funzione puo leggere un solo numero e restituirlo come risultato: basta quindi chiamarla due volte per leggere due numeri.

Una volta che hai le due liste devi implementare la sottrazione sui numeri, cioè il normale algoritmo della sottrazione, che poi sara usato nell'algorimto di euclide.

Se hai dei dubbi specifici chiedi.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2004, 13:13   #7
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
Non devo usare un puntatore alla testa della lista? Non capisco come posso implementare la sottrazione di due liste... Che faccio la differenza di ogni cella?

Scusa se approfitto, ma non è che mi faresti vedere un po' di codice se hai un po' di tempo, chiaramente...
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2004, 13:15   #8
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
cmq i numeri li prende già in input, ci sono due scanf per le due liste.. che sono divise da un terminatore del primo numero e da un terminatore del secondo...
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2004, 13:24   #9
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Si, devi conservarti i due puntatori alla testa della lista; poi fai una funzione sotrazione che prende i due puntatori che rappresentano i due numeri e scorri le liste cifra per cifra, a partire dalla meno significativa, in avanti, eseguendo la sottrazione, ricordandoti i riporti di volta in volta, modo da costruire un nuovo numero che rappresenta la differenza
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2004, 08:28   #10
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
come faccio a conservare i puntatori alla testa?
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2004, 09:21   #11
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
non è che qualcuno mi può fare vedere il codice di questo programma io sono convinto di sbagliare...
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2004, 12:59   #12
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Quote:
Originariamente inviato da Anccos
come faccio a conservare i puntatori alla testa?
Lo fai esattamente nel codice che hai scritto; ad esempio la variabile p alla fine del ciclo while è un puntatore al nodo della lista che rappresenta il primo numero, lista in cui le cifre sono ordinate dalla meno significativa alla piu significativa.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2004, 10:06   #13
Anccos
Junior Member
 
Iscritto dal: Dec 2004
Messaggi: 10
io non lo riesco a terminare sto programma e sto in scadenza domani... Mannaggia la miseria
Anccos è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2004, 12:07   #14
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
posta un po di codice, e te lo correggiamo e te lo ampliamo, ma inizia a pstare qualkosa.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Anthropic ha un'AI che trova falle in Wi...
I 10 migliori sconti Amazon del weekend:...
Con un coupon scendono ancora: le super ...
Minimo storico per Samsung Galaxy S26 Ul...
Si è conclusa la missione lunare ...
EK Waterblock si arrende agli aumenti, i...
Geekbench si aggiorna: tutti i test con ...
Per la prima volta un computer quantisti...
Telecamere Reolink 4K su Amazon: Wi-Fi 6...
Anthropic vuole farsi i chip da sola? Co...
Il fondatore di Framework: il personal c...
JBL Live Flex 3 a 129€ su Amazon: ANC ad...
Come un uomo ha costruito un'azienda da ...
Multe fino a 400 euro anche se hai pagat...
Tapo lancia una valanga di offerte su Am...
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: 08:28.


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