Mi sono perso in un passaggio
qui ho un programmino in cui non capisco come interpretare un passaggio:
mi perdo nel 'if' del primo void quando c'è scritto master[j] > master[j+1]; master sta a indicare quad ma quel j non capisco cosa indichi! si riferisce al k?
grzie mille!
int i, j, k; int m1[100], m2[100], quad[100]; k = 0; for (i=1; i<=5; i++) for (j=i; j<=5; j++) { m1[k] = i*i; m2[k] = j*j; quad[k] = m1[k] + m2[k]; k++; } bubble(quad, m1, m2, k); for(i=0;i<k;i++) printf ("[%3d]: %3d + %3d = %4d\n", i+1, m1[i], m2[i], quad[i]); void bubble(int * master, int * arr2, int * arr3, int dim) { int ult, j; for (ult=dim-1; ult>=1; ult--) { for(j=0; j<(ult-1); j++) { if (master[j] > master[j+1]) { scambia(&master[j], &master[j+1]); scambia(&arr2[j], &arr2[j+1]); scambia(&arr3[j], &arr3[j+1]); } } } void scambia (int * a, int * b) { int temp; temp = *a; *a=*b; *b=temp; }
mi perdo nel 'if' del primo void quando c'è scritto master[j] > master[j+1]; master sta a indicare quad ma quel j non capisco cosa indichi! si riferisce al k?
grzie mille!
Risposte
il K non centra nulla non è all'interno della funzione,quel j è l'indice del for cmq l'algoritmo lo hai capito,mi pare il bubble sort per ordina un array..
si è un sistema per ordinare l'array.. però allora non capisco master[j+1] cos'è! cioè si riferisce a quad, però quel +1 indica che devo confrontarlo col quad successivo creato? grazie
si lo confronta con l'elemento successivo per vedere se è maggiore minore..nel caso lo scambia..
ti ringrazio davvero
