Ciao a tutti nel risolvere questo esercizio mi è venuto un dubbio: (posto il testo)
Si scriva un programma C che svolge il compito illustrato nel seguito e il cui codice sorgente sia suddiviso in due distinti file sorgenti. Il compito del programma è ordinare un array di elementi di tipo unsigned chiamato "dati_comuni" e successivamente stamparne il contenuto, un valore su ciascuna riga. Il primo dei due file sorgente deve contenere l'array e la funzione main. Il secondo file sorgente deve contenere la funzione di ordinamento, che deve rispettare il prototipo seguente:
void ordina_dati(void);
Tralasciando il fatto che non ho diviso il codice in due file sorgente volevo provare a scrivere la funzione di ordinamento. Ragionando però non capisco proprio come una funzione che non accetta nessun parametro possa ordinare un array.è sbagliato il testo dell'esercizio? Oppure c'è qualcosa che non so? il prototipo non dovrebbe essere del tipo " void ordina_dati(unsigned array[])"???
Vi posto anche quello che ho provato a scrivere..però non funziona, cioè mi ristampa l'array senza ordinarlo![]()
Maledetto C!
Grazie in anticipo! Help me!
#define LEN 10
#include <stdio.h>
void ordina_dati(void);
int main(void)
{
unsigned dati_comuni[LEN]={56,3,4,7,1,5,0};
ordina_dati();
int i;
for (i=0; i<LEN; i++)
printf("%u\n",dati_comuni[i]);
return 0;
}
void ordina_dati(void){
int i,j,min,temp;
unsigned vet[LEN];
for(i=0; i<LEN-1; i++)
{
min = i;
for(j=i+1; j<LEN; j++)
if(vet[j] < vet[min])
min = j;
temp=vet[min];
vet[min]=vet[i];
vet[i]=temp;
}
}


Rispondi quotando