Comment stoker les valeurs d'un vecteur en C? [Résolu/Fermé]

Signaler
Messages postés
36
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
13 juillet 2015
-
Messages postés
36
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
13 juillet 2015
-
Bonjour,

Pour commencer, je vous remercie tous de votre attention.
Voila, j'ai commencé la programmation il y a pas très longtemps, et il se trouve que j'ai des soucies.
Deja, voici mon programme :

#include <stdio.h>
#define dim

typedef int vect [dim];

int main (void)
{ int i,j,k;

printf ("saisir la dimension du vecteur\t",i);
scanf ("%d",&i);

printf ("saisir les elements du vecteur");
for (k=0;k<=i;k++)
{printf ("\nA [%d] = ",k);
scanf ("%d",&j);
}
printf ("voici votre vecteur!\n");
for (k=0;k<=i;k++)
printf ("\tA [%d] = %d\n",k,j);


system ("pause");
return 0;
}

Au fait, après la saisie de la dimension d'un vecteur et de ses éléments, je voudrais qu'il afficher les valeurs de chaque élément saisie mais il se trouve qu'il affche que tous le vecteur est égale à la dernière saisie de l'élément.
Par exemple :
vecteur dim 3 ; A[k]=j ; on saisie les valeurs de j ( 2 puis 5 et 6) je voudrais qu'il affiche:
A[1] = 2
A[2] = 5
A[3] = 6
mais il affiche que tous les A[k]=6 (6 est la derniere saisie de j);
Donc je dois utiliser un vecteur pour stoker la valeur mais je n'arrive pas.
Si quelqu'un sait comment le faire aider moi s'il vous plais!!!
Je vous serais très reconnaissant!

En tout cas,je vous remercie de votre attention.

3 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 536
Salut,

tu ne stocke rien du tout, ce que tu fait c'est d'afficher la valeur saisie
c'est normal que la dernier valeur est affiché puisque c'est exactement ça que tu demande

essaie comme ça
#include <stdio.h>
#include <stdlib.h>

int main (void)
{
        int *vect;
        int i,k;

        printf ("saisir la dimension du vecteur\t",i);
        scanf ("%d",&i);

        if (NULL == (vect =  (int *) malloc (i * sizeof(int))))
                return -1;

        printf ("saisir les elements du vecteur");
        for (k=0;k<i;k++){
                printf ("\nA [%d] = ",k);
                scanf ("%d",&vect[k]); /* ici je stocke */
        }
        printf ("voici votre vecteur!\n");
        for (k=0;k<i;k++)
                printf ("\tA [%d] = %d\n",k,vect[k]);


        system ("pause");
        return 0;
}
Messages postés
36
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
13 juillet 2015

Oh!!!
Je te remercie infiniment Lami20j!

ça marche mais etant donné que je n'ai vraiment pas d'experience sur la programmation,Je viens de commencer, c'est compliqué les syntax (NULL == (vect = (int *) malloc (i * sizeof(int)))), je comprends pas bien,
je me demande comment vous faites pour connaitre tous ça.lol

En tout cas merci pour ton aide!
Messages postés
36
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
13 juillet 2015

Solution donnée par lami20j:

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
int *vect;
int i,k;

printf ("saisir la dimension du vecteur\t",i);
scanf ("%d",&i);

if (NULL == (vect = (int *) malloc (i * sizeof(int))))
return -1;

printf ("saisir les elements du vecteur");
for (k=0;k<i;k++){
printf ("\nA [%d] = ",k);
scanf ("%d",&vect[k]); /* ici je stocke */
}
printf ("voici votre vecteur!\n");
for (k=0;k<i;k++)
printf ("\tA [%d] = %d\n",k,vect[k]);


system ("pause");
return 0;
}