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 :

Un problème d'indice de boucle for


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Un problème d'indice de boucle for
    Bonjour.

    J'ai un problème sur l'indice d'une de mes boucles for dans une de mes fonctions. Celui reste à 0 ou 1 tout le temps, je reste donc dans une boucle infinie...

    Voici la partie de mon code relative à la fonction qui me pose problème :

    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
    void RP(double ** Data, double eps, int m, int N, int ** R)
    {
    	int i, j;
    	double X1[3], X2[3];
    	for ( i=0 ; i<m ; i++ )
    	{
    		R[i]=malloc(m*sizeof(int));
    		X1[1]=Data[1][i];
    		X1[2]=Data[2][i];
    		X1[3]=Data[3][i];
    		for ( j=0 ; j<m ; j++ )
    		{
    			X2[1]=Data[1][j];
    			X2[2]=Data[2][j];
    			X2[3]=Data[3][j];
    			if ( norm2(X1,X2,N) < eps )
    			{
    				R[i][j] = 1;
    			}
    			else
    			{
    				R[i][j] = 0;
    			}
    		}
    	}
    }
    C'est l'indice de la première boucle qui n'évolue pas ou peu (i) : il n'y a aucun problème sur l'indice de la seconde boucle (j).

    J'espère que vous pourrez m'aider à trouver mon erreur, je sèche là...

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	double X1[3], X2[3];
    	for ( i=0 ; i<m ; i++ )
    	{
    		R[i]=malloc(m*sizeof(int));
    		X1[1]=Data[1][i];
    		X1[2]=Data[2][i];
    		X1[3]=Data[3][i];
    		for ( j=0 ; j<m ; j++ )
    		{
    			X2[1]=Data[1][j];
    			X2[2]=Data[2][j];
    			X2[3]=Data[3][j];
    Il est illégal d'écrire à l'indice 3 des tableaux X1 et X2 : l'indice doit être compris entre 0 et 2. Tu écris à l'extérieur des tableaux ce qui détruit ton programme. (Pour Data, on ne peut rien dire évidemment)

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Effectivement, honte à moi d'avoir oublié ça... Trop de Matlab tue le C... ^^
    Merci à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'index dans boucle for
    Par cocacola0589 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 09/02/2010, 18h22
  2. problème insert into avec boucle for
    Par nokia1600 dans le forum VB.NET
    Réponses: 8
    Dernier message: 30/10/2009, 15h08
  3. [AC-2002] Problème d'écriture sur boucle FOR
    Par Titwou dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2009, 19h26
  4. [FLASH 8] Problème nom variable et boucle for
    Par jbidou88 dans le forum Flash
    Réponses: 10
    Dernier message: 23/03/2007, 11h36
  5. [VB6] Problème contrôle Timer et boucle For-Next ...
    Par Stéphane BEHMENBURG dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/12/2005, 17h36

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