Răspuns:
void ordonare(int a[], int n)
{
int i,j, aux;
for (i=0;i<n-1; ++i)
for (j=i+1; j<n; ++j)
if (a[j]<a[i]) {
aux=a[i]; a[i]=a[j]; a[j]=aux;
}
return;
}
Explicație:
Nu ai fost atent la această Restricţie...
- elementele tabloului a sunt indexate de la zero.
Şi aici nu e bine...
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
if(a[i]>a[j])
swap(a[i],a[j]);
}
Dacă ar fi indexarea de la 1 până la n (dar tr. să fie de la zero conform restricţiilor), cum ai folosit se obţine eroare pt. i=n, deoarece j=i+1 şi ieşi din limitele vectorului. Tr. să ai for(i=1; i<n; i++) , numai pentru indexarea de la 1...