Probleme aidez moi svp

Signaler
Messages postés
5
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
4 mai 2005
-
Messages postés
5
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
4 mai 2005
-
le truc est simple je dois extraire des entiers d'un fichier source: A puis les mettre dans un fichier destination :B de façon que les entiers soient triés en ordre decroissant dans B

les entiers sont placés dans A espacés par un espace(' ') et chaque ligne ne contient au max que 100 entiers.

il faut extraire les entiers ,les mettres (soit en lisant par fgets ou fgetc) dans un tableau (ligne par ligne)trie le tab puis copier le contenu du tab dans B
chaque entier en double sera mis une seul fois.

exp:
A /:
10 25 47 78 25 96 1 4
27 89 41 47 5 96 2 0
9 7 8 45 20
B:
1 4 10 25 47 78
0 2 5 41 47 .....

svp je un petit coup de main

7 réponses

Messages postés
10
Date d'inscription
jeudi 4 novembre 2004
Statut
Membre
Dernière intervention
16 novembre 2005

Si c'est convertir une chaine de caractère en entier qui te pose problème utilise la fonction sscanf() qui ce trouve dans ctype.h il me semble.
Si c'est pour remplir un tableau d'entier ou comment trie le tableau .... précise.
Messages postés
5
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
4 mai 2005

je commence a trouve:(merci d'ajouter vos commentaires)

#include<stdio.h>
#include<stdlib.h>


main()
{
FILE *fp;
int t[100],tmp,i=0;



if(!(fp=fopen("test.txt","r")))
{
printf("fichier inexistant");
exit(0);
}
while(!(feof(fp)))
{
fscanf(fp,"%d",&t[i]);
i++;



}
for(i=0;i<10;i++)/*pour voir si les element du tableaux sont vraiment ceux du fichier
{
printf("%i",t[i]);
}
}
Messages postés
10
Date d'inscription
jeudi 4 novembre 2004
Statut
Membre
Dernière intervention
16 novembre 2005

C'est un bon début mais n'oublie pas de fermer le fichier.

I'm trying to free your mind.
But I can only show you the door.
Messages postés
5
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
4 mai 2005

mais comment faire la suite: chaque ligne mise dans le tableau t[] doit etre triee puis renvoyee dans le fichier destination.
please help.
Messages postés
10
Date d'inscription
jeudi 4 novembre 2004
Statut
Membre
Dernière intervention
16 novembre 2005

Et bien tu a deux possibilité :
Soit tu utilise la fonction qsort() du fichier d'en-tête <stdlib.h> de cette façon là :

qsort((
void *)&t[0],i,
sizeof(
int),compare);

la fonction compare c toi qui doit la faire

int compare(
const
void *element1,
const
void *element2)
{

return(element1>element2);
}

Soit tu fait toi une fonction de trie.

I'm trying to free your mind.
But I can only show you the door.
Messages postés
10
Date d'inscription
jeudi 4 novembre 2004
Statut
Membre
Dernière intervention
16 novembre 2005

bon g tester avec qsort et ça marche pas je c pas vraiment pourkoi !!
et puis je c même pas pourkoi g poster ce truc je l'ai jamais utiliser !!!
Mais de toute façon le mieux ce serai de faire une fonction de tri toi même
2 boucle for l'une dans l'autre pour enumérer chacun des 2 élément de la comparaison si le 2ème élément et plus grd que le 1er intervertir les valeur :


for(i=0;i<nbvaleur;i++)
{

for(j=i+1;j<nbvaleur;j++)
{

if(tab[j]<tab[i])
{
tampon=tab[j];
tab[j]=tab[i];
tab[i]=tampon;
}
}
}

Un truc dans le genre.
bon g pas tester ça nonplus g tapper ça vite fait mais ça devrai marcher

I'm trying to free your mind.
But I can only show you the door.
Messages postés
5
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
4 mai 2005

merci cgmorpheus t'es genial et a tous ceux qui ont aider!!.
vous etes coooooooool
a+.