Accueil > Forum > > > > Probleme de boucle infinie
Probleme de boucle infinie
lundi 11 juin 2007 à 07:11:18 |
Probleme de boucle infinie

darkwhite
|
Salut à tous, | a | b | c | résultat | | 0 | 0 | 0 | 0 | | 0 | 0 | 1 | 0 | | 0 | 1 | 0 | 1 | | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 |
Je veux ecrire une table de verité dans un tableau dont l'equation m'est incconuue (car j'ai la fleme de la calculer  ). Ensuite le but du programme est qu'a partir de 3 nombres entré il me donne le resultat de la ligne corespondante. J'ecris donc le code ; #include <stdio.h> int main() {printf("test"); int table[4][8],i=0,j=0,k=4; int a,b,c; //Mise a zero du tableau printf("test2"); for(i=0;i<4;i++) { for(j=0;j<8;j++) { table[i][j]=0; } } //Remplissage de la table for (i=0;i<4;i++) { for(j=0;j<8;j+=k) { table[i][j]=1; } //Pour la colonne suivante l'etat change deux fois plus frequement k/=2; } //Ecriture des resultats // On pourrai le faire avec des operateurs logiques mais je ne suis pas arrivé a calculer l'equation table[3][2]=1; table[3][3]=1; table[3][5]=1; table[3][6]=1; table[3][7]=1; j=0; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); //Recherche de la ligne correspondante while(table[0][j]!=a && table[1][j]!=b && table[2][j]!=c) { j++; } printf("%d",table[3][j]); return 0; } Bon bien sur sa ne march pas, mais ce qui m'étonne le plus, c'est que j'ai mis un printf a la premiere ligne du code et qu'a l'execution aucun texte n'apparait. En lançant la commande top j'ai remarqué que mon prog partait en espece de boucle infinie (il prenait 90% du proc) Donc pourquoi il part en sucette comme ça dejà ?
|
|
lundi 11 juin 2007 à 08:05:45 |
Re : Probleme de boucle infinie

omnia
|
Réponse acceptée !
Salut,
Bon pour commencer un printf si tu veux qu'il t'affiche la ligne il faut ajouter un \n a la fin de la chaine:
printf("test\n");
il reste bloqué dans ta boulce while:
dans le cas ou a b ou c n"existe pas il ne sort jamais de la boucle ...
|
|
lundi 11 juin 2007 à 08:12:08 |
Re : Probleme de boucle infinie

thomwebster
|
Réponse acceptée !
Salut a toi! Bon alors chez moi tes deux printf de test s'affiche bien. En fait si tu veux faire des affichage test de debug utilise fprintf(stderr,"test"); car cette fonction écrit dans la sortie standard et n'est pas bufferisée. C'est à dire qu'elle écrit a l'écran tout de suite alors que printf attend que le buffer soit plein... printf à été ocnçu ainsi car a chaque écriture il y a un appel system et ton programme perd le processeur (cf ordonnanceur ou scheduleur pour + de détails), ainsi en utilisant un buffer il stock plusieurs choses a écrire avant de faire l'appel system, pour en faire le moins possible. L'avantage de printf est qu'il est plus rapide que fprintf mais son inconvénient et que si le programme plante il est possible qu'il n'écrive pas ce que tu lui a dit d'écrire car le buffer n'est pas plein (ou qu'il n'y a pas eu d'autre appel system)... fprintf lui crache tout ce que tu lui donne... Cela peut donc vraiment ralentir un programme qui à chaque affichage perd le processeur mais qui par contre "doit" être utilisé en phase de debug. Pour ta boucle infini, elle vient de là: //Remplissage de la table for (i=0;i<4;i++) { for(j=0;j<8;j+=k) { table[i][j]=1; } //Pour la colonne suivante l'etat change deux fois plus frequement k/=2; } En fait j'ai un peu de mal à voir comment tu veux remplir ta table... C'est la première table que tu a mis au début de ton poste que tu veux obtenir? Si tel est le cas, autant ne pas la calculer mais la rentrer en dur comme ceci: int table[4][8]={0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1};
C'est une initialisation à la définition, ça marche comme ça: type Nom_du_tableau [Taille1][Taille2]...[TailleN] = {elem1, elem2, ... elemX};Les valeurs sont attribuées aux éléments successifs en incrémentant d'abord les indices de droite,
c'est-à-dire pour un tableau à 2 dimensions : [0][0], [0][1], [0][2] ... puis [1][0] etc. Tiens moi au courrant de l'avancement de ton programme et n'hésite pas à me demander si tu a des questions... Bonne continuation. Thom
|
|
lundi 11 juin 2007 à 12:23:54 |
Re : Probleme de boucle infinie
|
lundi 11 juin 2007 à 12:26:30 |
Re : Probleme de boucle infinie

darkwhite
|
Merci Beaucoup pour vos reponsses, apres le bac je m'y repanche
|
|
lundi 11 juin 2007 à 20:43:43 |
Re : Probleme de boucle infinie

mogwai93
|
Je rajouterais aussi un test sur j dans le while pour éviter un débordement de tableau
|
|
samedi 18 août 2007 à 20:54:17 |
Re : Probleme de boucle infinie

darkwhite
|
Bon mon en est là :
#include <stdio.h>
int main() { int table[4][8]={0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1}; int i=0,j=0,k=4; int a,b,c;
//Mise a zero du tableau
for(i=0;i<4;i++) { for(j=0;j<8;j++) { table[i][j]=0; } }
table[3][2]=1; table[3][3]=1; table[3][5]=1; table[3][6]=1; table[3][7]=1; j=0; printf("remplie\n"); scanf("%d",&a); scanf("%d",&b); scanf("%d",&c);
//Recherche de la ligne correspondante while(table[0][j]!=a && table[1][j]!=b && table[2][j]!=c) { j++;printf("x\n"); } printf("%d\n",table[3][j]);
return 0; }
A l'execution il scanf mes trois variables. Or il ne reagit pas et ne renvoie rien et se termine. Je ne comprends pas car je pensse que les conditions sont bonnes ? (la preuve que non mais bon)
http://montagne-liberte.homedns.org
|
|
lundi 3 septembre 2007 à 17:57:00 |
Re : Probleme de boucle infinie

darkwhite
|
Loki6
pourrait tu me dire comment tu trouve l'equation ? car je galere la
|
|
lundi 3 septembre 2007 à 18:22:24 |
Re : Probleme de boucle infinie

omnia
|
B OU (A ET C) :
if (B | (A & C) )
|
|
lundi 3 septembre 2007 à 18:23:24 |
Re : Probleme de boucle infinie

omnia
|
lol
euh plutot
B || A && C;
mdr
|
|
Cette discussion est classée dans : boucle, table, printf, for, infinie
Répondre à ce message
Sujets en rapport avec ce message
boucle qui ne fonctionne pas [ par florian1121 ]
Bonjour!!J'ai un probleme au niveau de mon programme, lorsque je le lance la boucle for dans les case ,ca empeche la boucle de switch de recommencer,
boucle imbriquée et pyramide de nombres [ par Smanyx ]
Salut! Je voudrais arriver à écrire un programme en C qui affiche la pyramide ci-dessous: ----------1 ---------232 --------34543 -------456
Produit matriciel en c renvoit des valeurs complètement fausses [ par bilel59 ]
Bonjout à tous, je sollicite votre aide pour la raison indiquée dans le titre, en effet le produif matriciel que j'effectue renvoit des valeurs vraime
aide sur un prog [ par jsuititidu27 ]
Bonjour, j'ai besoin d'un petit coup de main. ceci est un exo qui demande d'écrire un programme de tri de chaines de caractères. J'ai donc écrit le co
HELP [ par alex64100 ]
BONOURje doit réaliser un prog de tri de caractèresvoici mon code#include #include #include #include int main (int argc, char ar
aider moi plz avant le 5 avril [ par riadusse ]
voici mon programme de simulation de processus selon la méthode SJFj ai pas compris pourquoi l affichage est très très bizarre voici mon programme en
la programmation de l'algorithme du simplexe [ par soums2009 ]
salut à tous j'ai un probleme avec mon code qui implemente l'algoritme du symplexe et je sollicite votre aide pour pouvoir terminer et rendre mon dev
Problème compréhension du programme le compte est bon [ par echec ]
Bonjour,Je cherchai un programme c++ sur internet qui permettait de calculer la solution du jeu le compte est bon, j'en est finalement trouvé un, mais
Boucle For pour créer des fichiers [ par dante20007 ]
Bonjour, je voudrais faire une boucle pour créer plusieurs fichiers en c++ mais uniquement avec les fonctions Windows. Comment Faire?(Je ne sais pas c
Sauvegarde de fichier géométrique simple dans un fichier sous xp. [ par DeathRavage ]
Bonjour à tous j'ai pour projet de développer un programme permetant le dessin de formes géométriques simples et leur sauvegarde dans un fichier.j'ai
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|