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 :

Probleme de conditions !


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut Probleme de conditions !
    Bonjour a tous,
    J'ai un petit probleme avec ce code que je viens d'ecrire,et je ne trouve pas le probleme....
    Desolée, mais les noms des fonctions sont tous en portugais ^^'
    En faites dans mon MAIN, j'ai la fonction "reserva" avec um nombre (65600), le probleme viens dans ma fonction "reserva" ou normalement il ne devrait rentrer que a la troisieme condition, comme resultat final bien sur !
    Mais dans mon terminal, il rentre dans la premiere condition ! Et je ne comprends pas pourquoi ! Une aide serait la bienvenue.
    Merci,

    Damien

    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
    #include <stdlib.h>
    #include <stdio.h>
     
    typedef struct sLL{
    	int linicial;
    	int lfinal;
    	struct sLL *next;
    }LL;
     
    LL * init(){
    	LL *aux=NULL;
     
    	aux=(LL *) malloc(sizeof(LL));
    	aux->linicial=0;
    	aux->lfinal=65535;
    	aux->next=NULL;
    	return aux;
    }
     
    LL * reserva(LL *l1,int n,int *reservado){
     
    	if(l1 && (((l1->lfinal)-(l1->linicial))<= n)) {
    		*reservado=l1->linicial;
    		l1->linicial+=n;
    		return l1;		
    	}
    	else if(l1 && (((l1->lfinal) - (l1->linicial) > n))) {
    		l1->next=reserva(l1->next,n,reservado);
    		return l1;
    	}
    	else{
    		*reservado=-1;
    		return l1;
    	}
    }
     
    LL * liberta(LL *l1,int lugar, int n){
     
    }
     
    void showLL(LL *l1,int *reservado){
    	if(l1){
    		printf("[ %d , %d ]-->",l1->linicial,l1->lfinal);
    		showLL(l1->next,reservado);			
    	}
    	else{
    		printf("NULL\n *reservado: %d\n",*reservado);
    	}
     
    }
     
    int main(){
    	LL *l1=NULL;
    	int *reservado;
    	int reservado2=0;
     
    	reservado=&reservado2;
     
    	l1=init();
    	l1=reserva(l1,65600,reservado);
    	showLL(l1,reservado);
     
    	return 0;
    }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 119
    Par défaut
    Pourquoi ne devrait-on pas rentrer dans le premier if ? (65535 <= 65600)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut
    Citation Envoyé par gulain Voir le message
    Pourquoi ne devrait-on pas rentrer dans le premier if ? (65535 <= 65600)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(l1 && (n<=((l1->lfinal)-(l1->linicial)))) {
                    *reservado=l1->linicial;
                    l1->linicial+=n;
                    return l1;
            }
            else if(l1 && (n>((l1->lfinal) - (l1->linicial)))) {
                    l1->next=reserva(l1->next,n,reservado);
                    return l1;
            }
    enfaites j'avais mal fait ma condition ^^'
    Surement la fatigue ou de l'inattention ^^'

Discussions similaires

  1. Réponses: 15
    Dernier message: 05/05/2006, 09h13
  2. [AS] Probleme de condition
    Par Treuze dans le forum Flash
    Réponses: 8
    Dernier message: 25/03/2006, 15h27
  3. probleme de condition et de boucle
    Par avantoux dans le forum ASP
    Réponses: 5
    Dernier message: 23/03/2006, 08h59
  4. Probleme de conditions
    Par guy2004 dans le forum Langage
    Réponses: 11
    Dernier message: 05/11/2005, 14h54
  5. probleme gestion condition switch - case
    Par DarkMax dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2005, 14h25

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