[c]help tableau

Fermé
info - 27 déc. 2008 à 01:16
sadektlili Messages postés 139 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 3 avril 2010 - 27 déc. 2008 à 10:19
Bonjour,
voice ce que doit faire mon programme
tab 25 25 37 64 64 64 20// des entiers tapés par l'utilisateur
t 25 37 64 20//eliminer les doubles
t1 2 1 3 1// le nombre de fois que c'est repeté


voice mon programme:
#include <iostream>

void saisie_trie(int *tab,int n){
int i,j,aux;
for(i=0;i<n;i++){
printf("taper la valeur\n");
scanf("%d",&tab[i]);
}

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

}
void pas_double(int *tab,int n,int *t,int *indice){
int i;
*indice=1;
t[0]=tab[0];
for(i=1;i<n;i++){
if (tab[i]==tab[i-1])
continue;
else {
t[*indice]=tab[i];
(*indice)++;
}
}
}
void repeter(int *tab,int n,int *t,int n1,int *t1){
int i,j,compt;
for(i=0;i<n1;i++){
compt=0;
for(j=0;i<n;j++){
if (tab[j]==t[i])
compt++;

}

t1[i]=compt;
}



}
void affiche_tableau(int *tab,int n){
int i;
for(i=0;i<n;i++)
printf("%d\t",tab[i]);
}
int main(){
int tab[30],n,t[30],n1=10,t1[30];
printf("la valeur de n\n");
scanf("%d",&n);
saisie_trie(tab,n);
affiche_tableau(tab,n);
puts("");
pas_double(tab,n,t,&n1);
affiche_tableau(t,n1);
puts("");
repeter(tab,n,t,n1,t1);
affiche_tableau(t1,n1);

}

ma question:pourquoi l'exécution du sous-programme repeter bug.
merci.

2 réponses

mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
27 déc. 2008 à 02:25
[code]
void repeter(int *tab,int n,int *t,int n1,int *t1){
int i,j,compt;
for(i=0;i<n1;i++){
compt=0;
for(j=0;i<n;j++){
if (tab[j]==t[i])
compt++;
}
[\code]
Ta boucle j est foireuse, essaie plutôt for(j=0;j<n;j++)
C'est rien ça nous arrive à tous :)
0
sadektlili Messages postés 139 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 3 avril 2010 4
27 déc. 2008 à 10:19
#include <iostream>
#include<conio.h>
#include<stdio.h>

void saisie_trie(int *tab,int n){
int i,j,aux;
for(i=0;i<n;i++){
printf("taper la valeur\n");
scanf("%d",&tab[i]);
}

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

}
void pas_double(int *tab,int n,int *t,int *indice){
int i,j,test_val=0;
*indice=0;

for(i=0;i<n;i++,test_val=0)
{

for(j=0;j<*indice;j++)
{
if(tab[i]==t[j])
test_val=1;
}
if(!test_val)
{
t[*indice]=tab[i];
(*indice)++;//_____________________________________________________
}
}
}
void repeter(int *tab,int n,int *t,int n1,int *t1){
int i,j,compt;
for(i=0;i<n1;i++)
{compt=0;
for(j=0;j<n;j++)
{
if (tab[j]==t[i])
compt++;

}

t1[i]=compt;
}



}
void affiche_tableau(int *tab,int n){
int i;
for(i=0;i<n;i++)
printf("%d\t",tab[i]);
}
int main(){
int tab[30],n,t[30],n1,t1[30];
printf("la valeur de n\n");
scanf("%d",&n);
saisie_trie(tab,n);
affiche_tableau(tab,n);
puts("");
pas_double(tab,n,t,&n1);
affiche_tableau(t,n1);
puts("");
repeter(tab,n,t,n1,t1);
affiche_tableau(t1,n1);
getch();
}


si tu à trouvé des problemes ->abdeljelil87@hotmail.com
0