|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2004
Messaggi: 44
|
[c] aiuto comprensione codice sorgente
Salve, sono un niubbo di c e non capisco alcuni passaggi di un codice che invece dovrei capire al 100%.
Prima cosa, qualcuno sa dirmi che razza di condizione è questa? while( 1) { } Seconda cosa, se qualcuno conoscesse l'algoritmo di ordinamento per inserimento, saprebbe dirmi perchè questo ciclo for: for (i=inizio+1; i<fine; i=i+1) { strcpy(box, a[i]); f = i; ....... } va fatto partire da inizio+1 anzichè da inizio? Grazie |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Sarebbe la stessa cosa con un for così: for (;;) { ... } Senza vedere il resto del codice, è oggettivamente difficile da dire (almeno per me).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jun 2004
Città: Cesena
Messaggi: 56
|
Potrebbe partire da inizio+1 perchè se effettuasse un confronto con l elemento precedente, uscirebbe dai limiti dell array.
__________________
Roberto Casadei http://www.robyonrails.eu "Tant'è amara che poco è più morte, ma per trattar del ben ch'i' vi trovai, dirò de l'altre cose ch'i' v'ho scorte." |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
while(1) -> cicla all'infinito le istruzioni del blocco. Dal momento che il while cicla finchè la condizione tra parentesi è vera, e siccome 1 è sinonimo di vero in c (in realtà puoi scriverci qualsiasi numero diverso da 0), eseguirai all'infinito le istruzioni del blocco while
Di seguito ti riporto un insertion sort: Codice:
void insertion_sort(int x[], int n)
{
int i, j, app;
for (i=1; i<n; i++) {
app = x[i];
j = i-1;
while ((j>=0) && (x[j]>app)) {
x[j+1] = x[j];
j--;
}
x[j+1] = app;
}
}
Questa è comunque solo una filosofia d'implementazione - quella classica; potresti tranquillamente partire dal primo elemento (i=0) e confrontare verso destra mettendo gli elementi in fondo all'array
__________________
Il sole è giallo |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Mar 2004
Messaggi: 44
|
Capito tutto, vi ringrazio molto, se avrò ancora bisogno (esame in avvicinamento) posterò ancora in questo thread per non continuare ad aprirne inutilmente.
Comunque per adesso sono a posto, grazie ancora. Ciao! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:21.




















