Qu'est-ce qui cloche ? (programme C)
robi61
-
marksman53 Messages postés 442 Date d'inscription Statut Membre Dernière intervention -
marksman53 Messages postés 442 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Mon code ne fonctionne pas. Pouvez vous me dire ce qui ne vas pas ?
Désolé pour le if à rallonge.
Merci d'avance.
Mon code ne fonctionne pas. Pouvez vous me dire ce qui ne vas pas ?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int trois[2] = {1};
int quatre[3] = {1};
int quatrei = 0;
int troisi = 0;
int un = 2;
int trouv = 0;
int dans = 0;
int i = 0;
while (trouv != 1)
{
if(trois[0] != un && trois[1] != un && trois[2] != un)
{
while(dans != 1)
{
while(i != 100) //boucle pour savoir à combien est égal quatre[0].
{
if(quatre[0] == i)
{
if(i != 0)
{
quatrei = i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
i = 0;
while(i != 100) //boucle pour quatre[1]
{
if(quatre[1] == i)
{
if(i != 0)
{
i = i*10;
quatrei = quatrei + i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
i = 0;
while(i != 100) //boucle pour quatre[2]
{
if(quatre[2] == i)
{
if(i != 0)
{
i = i*100;
quatrei = quatrei + i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
i = 0;
while(i != 100) //boucle pour quatre[3]
{
if(quatre[3] == i)
{
if(i != 0)
{
i = i*1000;
quatrei = quatrei + i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
i = 0;
while(i != 100) //boucle pour trois[0]
{
if(trois[0] == i)
{
if(i != 0)
{
troisi = i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
i = 0;
while(i != 100) //boucle pour trois[1]
{
if(trois[1] == i)
{
if(i != 0)
{
i = i*10;
troisi = troisi + i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
i = 0;
while(i != 100) //boucle pour trois[2]
{
if(trois[2] == i)
{
if(i != 0)
{
i = i*100;
troisi = troisi + i;
i = 99;
}
else
{
i = 99;
}
}
i++;
}
if(troisi*un == quatrei)
{
if(quatre[0] != un && quatre[1] != un && quatre[2] != un && quatre[3] != un && quatre[0] != trois[0] && quatre[0] != trois[1] && quatre[0] != trois[2] && quatre[1] != trois[0] && quatre[1] != trois[1] && quatre[1] != trois[2] && quatre[2] != trois[0] && quatre[2] != trois[1] && quatre[2] != trois[2] && quatre[3] != trois[0] && quatre[3] != trois[1] && quatre[3] != trois[2] && quatre[0] != quatre[1] && quatre[0] != quatre[2] && quatre[0]!= quatre[3] && quatre[1] != quatre[2] && quatre[1] != quatre[3] && quatre[2] != quatre[3])
{
if(trouv == 2)
{
trouv = 1;
}
if(trouv == 0)
{
trouv = 2;
}
printf("%d x %d = %d\n", trois, un, quatre);
}
}
else
{
printf("%d x %d = %d\n", trois, un, quatre);
if(quatre[0] >= 9)
{
quatre[0] = 0;
quatre[1]++;
}
if(quatre[1] >= 9)
{
quatre[1] = 0;
quatre[2]++;
}
if(quatre[2] >= 9)
{
quatre[2] = 0;
quatre[3]++;
}
if(quatre[3] >= 9)
{
quatre[3] = 1;
quatre[2] = 0;
quatre[1] = 0;
quatre[0] = 0;
trois[0]++;
}
if(trois[0] >= 9)
{
trois[0] = 0;
trois[1]++;
}
if(trois[1] >= 9)
{
trois[1] = 0;
trois[2]++;
}
if(trois[2] >= 9)
{
trois[2] = 1;
trois[1] = 0;
trois[0] = 0;
un++;
}
if(un >= 9)
{
dans = 1;
trouv = 1;
}
quatre[0]++;
}
if(trouv == 1) //si tout trouvé quitter la boucle while(dans != 1)
{
dans = 1;
}
} //while(dans != 1)
} //if comparaison trois et un
} //while tout trouvé
return 0;
}
Désolé pour le if à rallonge.
Merci d'avance.
A voir également:
- Qu'est-ce qui cloche ? (programme C)
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Comment fermer un programme qui ne répond pas - Guide
1 réponse
Ca serait bien d'avoir les erreurs aussi....
if(trois[0] != un && trois[1] != un && trois[2] != un)
Ici tu ne peux pas mêttre une condition d'égalité avec une chaine de caractère en C de cette façon. De plus tu cherches une inégalité sur une seule case et tu met un truc à 2 cases au moins après.
Enfin bref, ce truc compilera jamais.
Recommence à lire des tuto en C : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Et compile ton programme ou des morceaux au lieu de tout faire d'un coup comme ça et compiler après, tu va jamais y arriver.
Pour ton if à rallonge tu pouvais faire une boucle.
if(trois[0] != un && trois[1] != un && trois[2] != un)
Ici tu ne peux pas mêttre une condition d'égalité avec une chaine de caractère en C de cette façon. De plus tu cherches une inégalité sur une seule case et tu met un truc à 2 cases au moins après.
Enfin bref, ce truc compilera jamais.
Recommence à lire des tuto en C : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Et compile ton programme ou des morceaux au lieu de tout faire d'un coup comme ça et compiler après, tu va jamais y arriver.
Pour ton if à rallonge tu pouvais faire une boucle.