giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
Salve, non č che potretste dirmi come mai l'operatore relazionale non funziona come dovrebbe???....grazie anticipatamente
Codice sorgente - presumibilmente C |
#include <stdio.h> #include <stdlib.h> int main() { double frequenze, frequenza_min; int i, j, n; int *a; char lettere[27] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'Z', 'Y', 'W', 'X', 'K', 'J'}; /* menu */ for(i = 0; i < 18; ++i) printf("\nCODICE DI HUFFMAN\n"); for(i = 0; i < 18; ++i) /* acquisire il numero di frequenze */ printf("\nAcquisire Frequenze: "); scanf("%d", &n); /* calloc */ a = (int *)calloc(n, sizeof(int)); /* acquisire i rispettivi valori */ for(i = 0; i < n; ++i) { printf("\n%c -> ", lettere [i ]); scanf("%lg", &frequenze); } /* visualizza l'input acquisito */ frequenza_min = (frequenze < frequenze)? frequenze:frequenze; return 0; }
|
Ultima modifica effettuata da pierotofy il 13/06/2008 alle 20:00 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Postato originariamente da giocala88:
frequenza_min = (frequenze < frequenze) ? frequenze:frequenze;
|
?
Ma scusa un secondo... cosa volevi fare con questa istruzione? Perchč da come l'hai scritta questo č l'equivalente di:
Se x < x allora x, altrimenti x
In pratica frequenza_min viene sempre impostata al valore di frequenze.
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Se NON si usa il tasto Code (e i tag code) quando viene trovato un
[ i ]
(senza gli spazi) viene compreso come codice per il "corsivo" e non visualizzato e non si capisce nulla ...
Lo ripeto ... finche' il codice non sara' incluso nei tag code, non sara' comprensibile e non si potra' rispondere ...
|
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
innanzitutto mi scuso...l'istruzione vuole confrontare le frequenze inserite....formulo meglio la domanda...Come posso confrontare i dati input????...grazie
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Ma in che maniera devi confrontare i dati? Sii pių precisa nelle domande per favore.
|
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
Allora....Devo acquisire delle frequnze (valori double) attraverso un ciclo for (come si vede dinamicamnte);
questi valori double devono essere confrontati tra di loro;
la domanda č: come faccio a confrontare la frequenza 1 con la frequenza 2 con la freequenza n...in un ciclo fo????l'operatore relazionale che ho usato risulta sbagliato....perchč?...spero di essere stato chiaro....
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Confrontati in che maniera? E' una ricerca del minimo?
|
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
esattamente devoricercare il minimo tra quelli inseriti...
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
E' sbagliata la logica del codice quindi. Per ricercare il minimo basta che nel ciclo dove acquisisci l'input ad ogni iterazione controlli se il valore inserito č minore del valore precedente...
Io lo imposterei cosė:
Codice sorgente - presumibilmente C/C++ |
/* acquisire i rispettivi valori */
printf("\n");
printf("\n%c -> ", lettere[0]);
scanf("%lg",&frequenza_min);
for(i = 1; i < n; ++i)
{
printf("\n%c -> ", lettere[i]);
scanf("%lg",&frequenze);
if (frequenze < frequenza_min) frequenza_min = frequenze;
}
printf("%g", frequenza_min);
/* ... */
|
|
|