Erreur d'execution programme de tri itératif

Fermé
benigeek - 30 avril 2009 à 21:42
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 mai 2009 à 03:03
Bonjour tout le monde,
Je suis en L3 MASS et pour un projet j'ai besoin (entre autre d'une fonction itérative qui puisse me donner toutes les permutations d'un ensemble avec répétition)
Malheureusement ma fonction ne s'exécute pas mais elle compile ;-)

pourriez vous me dire si vous comprenez mon erreur? merci d'avance.

#include <stdio.h>

int main(){
int tab[4];
int comp=1;
int i =3;
int a,j,k;

while(comp!=0){
while(tab[3]!=3){
tab[3]++;
for(k=0; k<4; k++){
printf(" %d",tab[k]);
}
}
while (tab[i]==3){
a=i;
i--;
}
if(a!=0){
tab[a-1]++;
for(j = a; j < 4; j++){
tab[j]=0;
}
}
else { comp=0;}
}
}

2 réponses

pas d'idée?
quand j'exécute le programme effectue une boucle qui ne s'arrête jamais.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 817
1 mai 2009 à 03:03
Salut,

while(comp!=0){
Dans cette boucle, comp n'est jamais modifiée. La boucle sera donc infinie.

while(tab[3]!=3){
Attention, ton tableau tab n'a pas été initialisé. Il contient donc n'importe quoi.

Cdlt
0