Aide programme en C

FonGuss Messages postés 5 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 30 mars 2004 - 30 mars 2004 à 21:32
le_dahu Messages postés 141 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 avril 2004 - 31 mars 2004 à 23:30
Bonsoir tlm, je suis bloqué dans un programme de C, je vais vous donner l'énoncer:

-Saisir et enregistrer dans un fichier n entiers (n entré au clavier).
-Calculer et afficher la somme et la moyenne des
éléments du fichier.
-Calculer et afficher le nombre d’éléments positifs et nuls,en déduire le nombre d’éléments négatifs et afficher ce nombre.
-Saisir un nombre entier et détecter s’il appartient au fichier (recherche séquentielle).
-Rechercher et afficher le plus petit et le plus grand nombre du fichier.

Et c'est ici, en dessous que je cale, est ce que qqun peut m'aider? Je ne vois pas comment trier ce fichier...

-Afficher le contenu du fichier, trier les entiers dans l'ordre croissant et stocker le résultat dans un fichier copie et afficher le contenu de ce nouveau fichier.

8 réponses

le_dahu Messages postés 141 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 avril 2004 51
30 mars 2004 à 23:58
Le plus simple, c'est de stocker tous tes entiers dans un tableau de longueur n :
int[n] tab;


Ensuite, tu initialises ton tableau avec les entiers stockés dans ton fichier (peut-être que tu l'as déjà fait pour les questions précédentes).

Bref, une fois que tu as ton tableau contenant tes entiers, le reste c'est de l'algo... Je t'en file un :

int i, j, aux;
for ( i = 0 ; i < n - 1 ; i++ ) {
   for ( j = i+1 ; j < n ; j++ ) {
      if ( tab[j] > tab[i] ) {
          aux = tab[i];
          tab[i] = tab[j];
          tab[j] = aux;
      }
   }
}


A+


Si à gauche j'ai l'amont, c'est bon...
Si à gauche j'ai l'aval, j'suis bancal...
0
Fais un tri par bulle !
0
Le problème, c'est que je n'ai pas droit aux tableau/vecteurs...
0
le_dahu Messages postés 141 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 avril 2004 51
31 mars 2004 à 22:05
Pourquoi ça ? Ca existe en C, ce serait dommage de ne pas utiliser ;-)
D'autant plus que sans ça, ça risque d'être assez chiant à programmer...

A+


Si à gauche j'ai l'amont, c'est bon...
Si à gauche j'ai l'aval, j'suis bancal...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tu fais la lecture du fichier et tu compte le nombre de positif, d'elements en tt, ... pendant la lecture
0
le_dahu Messages postés 141 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 avril 2004 51
31 mars 2004 à 22:11
Et les pointeurs, tu y as droit ? Parce que si oui, tu peux faire la même chose (en C, tableau = pointeur)...

Tu déclares ton tableau en int* et tu fais un malloc... Ensuite, tu le manipules comme un tableau...
Du style :
int * tab;
tab = (int *) malloc ( n * sizeof(int) );
int i, j, aux;
for ( i = 0 ; i < n - 1 ; i++ ) {
   for ( j = i+1 ; j < n ; j++ ) {
      if ( tab[j] > tab[i] ) {
          aux = tab[i];
          tab[i] = tab[j];
          tab[j] = aux;
      }
   }
}



Enfin, je crois que ça marche... Je suis pas un super spécialiste en C (moi, ce serait plutôt le Java ;-)

A+


Si à gauche j'ai l'amont, c'est bon...
Si à gauche j'ai l'aval, j'suis bancal...
0
le_dahu Messages postés 141 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 avril 2004 51
31 mars 2004 à 22:14
Salut Vince !

Je crois que le pb, c'est surtout d'arriver à trier les entiers par ordre croissant... :o)
En tout cas, moi, à par les tabs, je vois pas comment faire facilement...

A+


Si à gauche j'ai l'amont, c'est bon...
Si à gauche j'ai l'aval, j'suis bancal...
0
Voila! c ca, je v faire avec des pointeurs! Pq j'y ai pas pensé avant?? Je suis teubé!
Merci bcp le dahu!
Et a la prochaine!
(bientot, pq c bientot le programme de fin d'année... :) )
0
le_dahu Messages postés 141 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 avril 2004 51
31 mars 2004 à 23:30
A vot' service m'sieur ! :o)

Bonne soirée


Si à gauche j'ai l'amont, c'est bon...
Si à gauche j'ai l'aval, j'suis bancal...
0