Salve a tutti, ho da poco iniziato a studiare informatica. Avevo in mente di fare un programma in C (che conosco davvero poco, sono nuovo alla programmazione) che facesse la partizione di un array secondo un elemento discriminante "x", cioè, tutti gli elementi<x devono andare a sinistra e tutti quelli>x devono andare a destra. Ci sto provando ormai da due giorni, ma quando vado a stampare gli elementi dell'array me li restituisce esattamente nello stesso ordine.
C:
#include <stdio.h>
int main()
{
int a[100];
int i,j,n,x,t;
i=1;
printf("Inserisci il numero di elementi: \n");
scanf("%d", &n);
j=n;
printf("Inserisci il discriminante: \n");
scanf("%d", &x);
for(i=1;i<n;i++) {
printf("Inserisci gli elementi: \n");
scanf("%d", &a[i]);
}
for(i=1;i<n;i++) {
if(a[i]<=x) {
i = i+1;
}
if(a[i]>x) {
t = a[i];
a[i] = a[j];
a[j] = t;
j= j-1;
}
}
for(i=1;i<n;i++)
printf("%d\n", a[i]);
return 0;
}
Ultima modifica da un moderatore: