Răspuns :
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...
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!