IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Condition sur le résultat d'une équation qui ne fonctionne pas (comparasion int, double)


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 173
    Points : 88
    Points
    88
    Par défaut Condition sur le résultat d'une équation qui ne fonctionne pas (comparasion int, double)
    Bonjour,


    je n'arrive pas a traiter correctement le resultat d'une equation, mon if est trop imprecis (il laisse passé les virgule apres le chiffre au lieu de les bloquer)

    et je ne comprend pas comment l'en empecher

    en vous remerciant



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    #include <stdio.h>
     
     
    int doublon(int tab2[])
    {
    int k;
    int l;
    int tabcopy[10];
    int flag2;
    int occurence=0;
    for(k=0;k<9;k++){
    tabcopy[k]=tab2[k];
    }
     
    for(k=0;k<9 && occurence<2;k++){
    	occurence=0;
     
    	for(l=0;l<9 && occurence<2;l++){
     
    		if(tabcopy[k]==tab2[l])
    		{
    			occurence+=1;		
     
    		}	
     
    	}
     
    	}
     
    	if(occurence>=2){
     
    		return 1;
     
    	}
    	else{
     
    		return 0;
    	}
     
     
     
    }
     
     
     
    int main(){
     
    int nb_equ=0;
    int compte=0;
    int j=0;
    double equation;
    	for(int a=1;a<10;a++)
    	{
    		for(int b=1;b<10;b++)
    		{
    			for(int c=1;c<10;c++)
    			{
    				for(int d=1;d<10;d++)
    				{
    					for(int e=1;e<10;e++)
    					{
    						for(int f=1;f<10;f++)
    						{
    							for(int g=1;g<10;g++)
    							{
    								for(int h=1;h<10;h++)
    								{
    									for(int i=1;i<10;i++)
    									{
     
    									int tableau[]={a,b,c,d,e,f,g,h,i};	
     
                                        if(doublon(tableau)==0)
    									{      
                                             equation=a+13*b/c+d+12*e-f-11+g*h/i-10;
                                         	if(equation==66)
    										{
    											for (j = 0 ; j<9 ; j++)
    										    	{
    										        printf("%d ", tableau[j]);
    										    	}
    											printf("\n");
    											nb_equ+=1;
    										}
     
    									   }
    									}
    								}
    							}
    						}
    					}
    				}	
     
    			}
    		}
     
     
    	}
     
    	printf("nombre equation %d\n",nb_equ);
    	return 0;			
     
    }

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Bonjour,

    C'est le souci de la comparaison de double, essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(fabs(equation-66) < precision)

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par markham Voir le message
    je n'arrive pas a traiter correctement le resultat d'une equation, mon if est trop imprecis (il laisse passé les virgule apres le chiffre au lieu de les bloquer)

    et je ne comprend pas comment l'en empecher
    Bonjour

    Même réponse que dans le forum Python. Te faut d'abord détecter que c divise b et que i divise g*h. Le langage change, mais pas les règles mathématiques qui le supportent...
    Et c'est pas la peine de définir ton équation comme double si tu veux avoir un résultat entier...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Evenement sur une div qui ne fonctionne pas
    Par lateek35 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2012, 22h09
  2. Probleme sur une requete qui ne fonctionne pas
    Par tralala2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2009, 10h05
  3. Range.Offset(1) dans une boucle qui ne fonctionne pas
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2008, 11h58
  4. trajectoire d'une forme qui ne fonctionne pas
    Par kaya 59 dans le forum VBA PowerPoint
    Réponses: 13
    Dernier message: 02/08/2008, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo