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 :

problème lors de multiplication entre 2 vecteur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 55
    Par défaut problème lors de multiplication entre 2 vecteur
    je suis en train de programmer un code qui permet de multiplier 2 vecteur:
    Exemple : U=( 1, 2, 3)
    V= ( 1 , 2 ,3)
    C= U* V= ( 1, 4, 9)

    voici mon code:

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    void chip()
    {
    	int U[2],V[2];
    	int i,n;
    	printf("donner le nombre d'element du 1 ere vecteur : ");
    		scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		printf("\nIntroduire  U[%d]: ",i);
    			scanf("%d", &U[i]);
    			printf("===========>%d",U[i]);
     
    	}
     
      for(i=0;i<n;i++)
      {
    		printf("\nIntroduire  V[%d]: ",i);
    			scanf("%d", &V[i]);
     
     
     
      }
    }
    /* Multiplication de deux vectuers U et V */
     
    int Scal_Complex(int U[2], int V[2])
    {
      int i,n;
      int CC[2];
      for(i=0;i<n;i++)
     {
     
      CC[i]=U[i]* V[i];
     
     return(CC[i]);
    printf("%d",CC[i]);
     
      }
     
    }
     
     
     void main ()
     {
    int CC[2],U[2],V[2];
     int i,n;
     /* Saisie de deux vectuers U et V */
    	chip();
     
     // Multiplication et affichage du resultat */
    		 for(i=0;i<2;i++) {
    	CC[i]=Scal_Complex(U,V);
     
     
    	 printf("c3: %d\n", CC[i]);
    	 printf("\n"); }
     
    }

    le résultat est: UN nombre élevé 18000 ou supérieur
    quel est le problème?

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Les variables U et V sont des variables locales à la fonction chip, il y a aussi deux variables locales à la fonction main, mais a priori, il n'y a pas de lien entre chaque.

    Pour corriger le problème, il faudrait que la fonction chip prenne les vecteurs U et V en paramètres.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 55
    Par défaut
    même problème?

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Montre nous ton nouveau code.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 55
    Par défaut
    voici mon nouvaux code:

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    void chip(int U[2],int V[2])
    {
    	//int U[2],V[2];
    	int i,n;
    	printf("donner le nombre d'element du 1 ere vecteur : ");
    		scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		printf("\nIntroduire  U[%d]: ",i);
    			scanf("%d", &U[i]);
    			printf("===========>%d",U[i]);
     
    	}
     
      for(i=0;i<n;i++)
      {
    		printf("\nIntroduire  V[%d]: ",i);
    			scanf("%d", &V[i]);
     
      }
    }
    /* Multiplication de deux vectuers U et V */
     
    int Scal_Complex(int U[2], int V[2])
    {
      int i,n;
      int CC[2];
      for(i=0;i<n;i++)
     {
     
      CC[i]=U[i]* V[i];
     
     return(CC[i]);
    printf("%d",CC[i]);
     
      }
     
    }
     
     
    int main ()
     {
    int CC[2],U[2],V[2];
     int i,n;
     /* Saisie de deux vectuers U et V */
    	chip(U,V);
     
     // Multiplication et affichage du resultat */
    		 for(i=0;i<n;i++) {
    	CC[i]=Scal_Complex(U,V);
     
     
    	 printf("c3: %d\n", CC[i]);
    	 printf("\n"); }
     
    }
    boucle infinie

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Alors, il y a quelques soucis dans ton code.

    D'abord, la fonction Scal_Complex ne peut pas renvoyer un tableau. Le plus simple est de lui passer en paramètre.

    De plus, la variable 'n' n'est correcte que dans la fonction chip.

    Voici un code qui corrige ces problèmes :

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    /**
     * renvoi la nombre d'éléments par vecteur
     */
    int chip(int U[2], int V[2])
    {
        int i, n;
        printf("donner le nombre d'element du 1 ere vecteur : ");
        scanf("%d", &n);
        for (i = 0; i < n; i++) {
            printf("\nIntroduire U[%d]: ", i);
            scanf("%d", &U[i]);
            printf("===========>%d", U[i]);
        }
     
        for (i = 0; i < n; i++) {
            printf("\nIntroduire V[%d]: ", i);
            scanf("%d", &V[i]);
        }
        return n;
    }
     
    /* Multiplication de deux vecteurs U et V */
    void Scal_Complex(int U[2], int V[2], int CC[2], int n)
    {
        int i;
        for (i = 0; i < n; i++) {
            CC[i] = U[i] * V[i];
            printf("%d", CC[i]);
        }
    }
     
     
    int main(void)
    {
        int CC[2], U[2], V[2];
        int i, n;
        /* Saisie de deux vecteurs U et V */
        n = chip(U, V);
     
        /* Multiplication et affichage du resultat */
        Scal_Complex(U, V, CC, n);
        for (i = 0; i < n; i++) {
            printf("c3: %d\n", CC[i]);
            printf("\n");
        }
        return 0;
    }

Discussions similaires

  1. Problème lors du calcul entre 2 dates
    Par thesmall1985 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 25/03/2010, 15h06
  2. Réponses: 0
    Dernier message: 30/04/2008, 11h23
  3. [Postfix + Courier_pop3] Problème lors de réceptions multiples
    Par Gast00n dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 08/01/2008, 12h15
  4. problème de alcul de cosinus entre deux vecteurs !?
    Par mega_info dans le forum Langage
    Réponses: 3
    Dernier message: 10/09/2007, 22h32
  5. [Débutant] Problème de corrélation entre deux vecteurs vitesses
    Par sydneya dans le forum Signal
    Réponses: 2
    Dernier message: 29/08/2007, 08h08

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