Aide tableaux en C

Résolu
informaticienne -  
 informaticienne -
Bonjour,
voilà mon programme, qu'est ce qui ne va pas?
merci de votre aide
Bonjour,
je dois créer un tableau , le remplir le trier.
si je suppose que ce tableau est:
t 25 25 37 64 64 128

je dois créer un deuxième tableau tab qui ne garde qu'un seul exemplaire de chaque valeur:

tab: 25 37 64 128
mon programma ne fonctionne pas, pouvez vous me dire ce qui ne va pas?
http://pastebin.com/m6bee611e

merci pour votre aide.
Configuration: Linux Fedora
Firefox 3.0.4

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Voici ton programme corrigé.
    Si t'as des questions n'hésite pas.
    #include <stdio.h>
    
    void saisir(int *t,int N){
        int i,j,trie=0,temp;
    
        for(i=0;i<N;i++){
            printf("taper une valeur\n");
            scanf("%d",&t[i]);
        }
    
        for(i=0;i<N && !trie;i++)
        {
            trie = 1;
            for (j=1; j < N-i; j++)
            {
                if (t[j] < t[j-1])
                {
                    trie = 0;
                    temp = t[j-1];
                    t[j-1] = t[j];
                    t[j] = temp;
                }
            }
        }
    }
    
    void tableau(int *t,int N,int *tab,int *tailleTab){
    
        int i;
        tab[0]=t[0];
        *tailleTab=1;
        for(i=1;i<N;i++){
            if (t[i]==t[i-1])
                continue;
            else{
                tab[*tailleTab]=t[i];
                (*tailleTab)++;
            }
        }       
    }
    
    
    
    void affiche(int *t,int N){
        int i;
        for(i=0;i<N;i++)
            printf("%d\t",t[i]);
    
    }
    
    int main(){
    
        int t[50],N,tab[50],N1=10;
        printf("tapez la valeur de N\n");
        scanf("%d",&N);
        while((N<0)||(N>50)){
            printf("tapez une autre valeur\n");
            scanf("%d",&N);
        }
        saisir(t,N);
        affiche(t,N);
        puts("");
        tableau(t,N,tab,&N1);
        affiche(tab,N1);
        puts("");
        return 1;
    
    }
    
    

    Cdlt
    0
  2. informaticienne
     
    thank you so much fiddy.
    je vois bien mon erreur: j que j'ai utilisé dans le programme ne peut être incrémentée que si j'utilise un pointeur.
    0