Aide tableaux en C

Résolu/Fermé
informaticienne - 19 nov. 2008 à 11:33
 informaticienne - 19 nov. 2008 à 13:46
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.

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
19 nov. 2008 à 11:52
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
informaticienne
19 nov. 2008 à 13:46
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