Grazie per l' aiuto , penso che con questa funzione riuscirò sicuramente a risolvere tutto, quando finisco vi posto il sorgente!!!
EDIT:
Purtroppo non ci riesco, ecco il mio codice, qualcuno può aiutarmi?
/*
Name: Ordina la parte decimale
Description:
Con questo programma vogliamo ordinare la parte decimale di un elenco di
numeri presi dal file (ordina.txt),l' elenco verrà ordinato :
1) Per grandezza della parte decimale dei vari numeri ,
2) In 3 gruppi , rispettando il seguente schema:
Gruppo:
1) 2,01 3,23 9,13 (Numeri compresi da 0,00 e 0,30)
2) 2,43 5,32 4,56 (Numeri compresi da 0,31 e 0,70)
3) 4,71 7,98 2,89 (Numeri compresi da 0,71 e 0,99)
Mostra risultato a video e aggiungi nel file di origine (ordina.txt)
*/
/* Prova con valori presi da vettore */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 100
int main()
{
double vet,vett[N],parte_int,parte_dec,temp,fraz[N],dec[N];
//char nf[50];
FILE *f;
int riemp=0 ;
int i=0,j=1;
printf("Prova modf\n");
vet=2.3456;
parte_dec= modf (vet,&parte_int);
printf("%f ha come parte decimale %f\n",vet,parte_dec);
printf("Inizio...\n");
// printf("Digitare il nome del file: ");
//scanf("%s",nf);
//Togli il commento e modifica sotto quando finito
//f=fopen(nf,"r");
f=fopen("ordina.txt","r");
if(f==NULL)
printf("Errore caricamento\n");
else {
while(fscanf(f,"%f",&vett[riemp])!=EOF)
riemp++;
printf("Ho caricato %d numeri\n",riemp);
fclose(f);
printf("Ecco i numeri in ordine:\n");
// Qui controllo ordine numeri
while(i<riemp&&j<riemp)
{
fraz[i]= modf (vett[i],&dec[i]);
fraz[j]= modf (vett[j],&dec[j]);
/* if(fraz[i]>fraz[j])
{
temp=fraz[i];
fraz[i]=fraz[j];
fraz[j]=temp;
i=0;
j=1;
}
fraz[i]=fraz[i]+dec[i];
fraz[j]=fraz[j]+dec[j];
i++;
j++;*/
}
for(i=0;i<riemp;i++)
vett[i]=fraz[i];
printf("%f\n",&vett[i]);
/*f=fopen("ordina.txt","a");
fprintf(f,"%f\n",vett);
fclose(f); */
}
system("PAUSE");
}