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