Rechercher : dans
Par :

Tri d'un tableau d'entiers en langage c

Dernière réponse le 16 avr 2009 à 18:34:51 sophiagi, le 23 déc 2008 à 21:31:10 
 Signaler ce message aux modérateurs

Bonjour
voilà j'ai un exercice en c et je trouve des lacunes à définir la fonction mon exercice est comme suit:
écrire un programme qui utilise une fonction qui trie un tableau d'entiers suivant le critère suivant:tous les entiers pairs doivent être au début du tableau et les entiers impairs à la fin.
cette fonction ne retourne pas de valeur.le programme principal demande la lecture des éléments du tableau.ce dernier ainsi que la dimension seront déclarés variables globales.

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « tri d'un tableau d'entiers en langage c » dans :
Langage C - Les types de données Voir Les types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

fiddy, le 23 déc 2008 à 22:07:14

Salut,
As-tu commencé ? Donne l'algorithme que tu as fait ou le début du code. On pourra t'aider plus facilement.
Google is your friend

Répondre à fiddy

2

sophiagi, le 23 déc 2008 à 22:18:48
  • +1

Bon j'ai commencé j'ai fait
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void tri(long int n,long *tableau);
{
int n,i;
là je me suis bloquée car je ne sais pas quoi définir encore et comment dire pair et impair en c

Répondre à sophiagi

3

fiddy, le 23 déc 2008 à 22:28:49

Salut,
Si a est paire Alors ... : if(a%2==0) ...
Si a est impaire Alors ... : if(a%2==1) ...
En fait a%2, (a modulo 2) représente le reste de la division de a par 2.
Google is your friend

Répondre à fiddy

4

sophiagi, le 23 déc 2008 à 22:33:43

Ah ok merci je vais essayer moi je croyais qu'il fallait écrire if(a mode 2==0) je l'ai mélangé avec l'algorithme
bon je vais essayer çà merci c'est gentil de ta part

Répondre à sophiagi

5

sophiagi, le 24 déc 2008 à 00:36:11

S'il vous plaît est ce que quelqu'un peut m'aider je n'arrive pas à le résoudre je me suis cassé la tête avec mais je n'y arrive pas

Répondre à sophiagi

6

fiddy, le 24 déc 2008 à 00:43:34

Salut,
Ce lien devrait t'aider : http://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles
T'as juste une ligne à changer (le if (t[j]<...) par une bonne condition (avec les modulos : opérateur %). Google is your friend

Répondre à fiddy

7

sophiagi, le 24 déc 2008 à 00:52:06
  • +1

Bon voilà ce à quoi je suis parvenue

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void tri(int n,int*)
{
int i;
int c;
int *t;
for(i=0;i<n;i++)
{if(i%2==0 && (i+1)%2==1)
{ t[i]=c;
t[i+1]=c;
t[i]=t[i+1];
}
}
}
int main()
{
int n;
int *t;
int s=0;
printf("entrer la dimension du tableau (maximum 20) :\n");
scanf("%d",&n);
t=(int*)malloc(n*sizeof(int));
s=tri(n,t);
printf("lire les elements du tableau : %d",s);
getch();
return(0);
}
mais il me donne une erreur de compilation et çà me rend dingue

Répondre à sophiagi

8

fiddy, le 24 déc 2008 à 01:04:55

Il y a des erreurs dans ton algorithme.
Je te donne un exemple de code qui devrait marcher.

#include <stdio.h>
#include <stdbool.h>

void affich(int *tab, const size_t n){
    int i;
    for(i=0;i<n;i++)
        printf("%d ",tab[i]);
    puts("");
}

void tri(int *tab, const size_t n){
    int i,j;
    int tmp;
    _Bool melange=true;

    for(i=0;i<n && melange;i++){
        melange=false;
        for(j=1;j<n-i;j++){
            if(tab[j-1]%2==1 && tab[j]%2==0){
                tmp=tab[j];
                tab[j]=tab[j-1];
                tab[j-1]=tmp;
                melange=true;
            }
        }
    }
}

int main(void){
    int tab[]={1,2,2,3,4,5,6,7,8,9,10};
    const size_t n = sizeof tab/sizeof *tab;
    affich(tab,n);
    tri(tab,n);
    affich(tab,n);

    return 0;
}


Google is your friend

Répondre à fiddy

9

sophiagi, le 25 déc 2008 à 00:16:00

Merci c'est gentil de ta part fiddy

Répondre à sophiagi

10

 exercicede Trie, le 16 avr 2009 à 18:34:51

Ecrire un prgramme qui Trier un taleau T de n élement de l'ordre croissante

Répondre à exercicede Trie