Comment stoker les valeurs d'un vecteur en C?

Résolu
Kenshin87 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
Kenshin87 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -
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

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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;
}
0
Kenshin87 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
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!
0
Kenshin87 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
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;
}
0