Question rapide programme en C ! - C - Programmation
Marsh Posté le 16-01-2008 à 12:47:01
Juste une illustration de l'erreur type que tu fais:
Code :
|
que tu appelles par taille(dim);
C'est un appel avec passage par valeur, donc ce n'est pas dim qui est transmis à la fonction taille, mais une copie. dim ne sera donc pas modifié par taille.
Si tu veux que dim soit modifié, il va falloir faire un passage par adresse:
Code :
|
que tu vas appeller par taille(&dim);
C'est une copie de &dim, l'adresse de dim, qui est transmis à la fonction taille, et cette copie pointe donc, comme l'original sur dim. scanf va modifier ce sur quoi pointe son second parametre, donc scanf va modifier dim.
A+,
Marsh Posté le 16-01-2008 à 12:52:53
gilou a écrit : Juste une illustration de l'erreur type que tu fais:
|
Déjà merci de prendre du temps pour m'aider
alors j'ai demandé a un ami et au final j'ai a peu pres compris mes erreurs, je devais donc modifier ceci :
|
Idem pour les fonction int saisie(int dim, vect A) comme je ne retournais rien autant mettre void saisie(int dim, vect A)
et tout à la fin j'avais une erreur qui ne prenais pas en compte la dimension donc il me fallait definir "dim" en mettant "dim = taille(dim)"
Marsh Posté le 16-01-2008 à 13:19:03
ximothov a écrit :
|
Comme tu ne fais rien avec la valeur retournée, si tu gardes ton appel taille(dim); ca ne marchera pas mieux.
A la limite, si ton appel est ainsi: dim = taille(dim); ca marchera car tu mettras la valeur retournée dans dim.
Mais la méthode de fonction avec passage par adresse est la plus courante dans une telle situation. Autant maitriser cette technique de base rapidement.
A+,
Marsh Posté le 16-01-2008 à 12:20:55
Voilà je suis en L2 et je dois creer un petit programme en C, cependant j'ai une erreur et je vois pas ou voici mon programme, quand je l'éxecute au moment d'entrer les valeurs de mon vecteur, il ne s'arrete plus alors qu'il devrait s'arreter quand i<dim, cepedant apparement il ne lis aucune valeur sur "dim" si quelqu'un pouvait me donner une piste svp j'ai du mal avec les fonctions le probleme est au niveau de la fonction SAISIE
merci
#include <stdio.h>
typedef vect[10];
//Fonction taille du vecteur
int taille(int dim)
{
printf("Entrez la taille que vous souhaitez pour votre vecteur A\n" );
printf("Taille de A : " );
scanf("%d",&dim);
}
//Fonction saisie
int saisie(int dim, vect A)
{
int i;
for(i=0;i<dim;i++)
{
printf("Saisissez la valeur %d du vecteur \n",i);
printf("Valeur %d : ",i);
scanf("%d",&A[i]);
}}
// Fonction affichage
int affiche(int dim,vect A)
{
int i;
printf("Valeurs des %d elements du vecteur : \n",dim);
for(i=0;i<dim;i++)
printf("%tA[i] = %d \n",A[i]);
}
int main(void)
{
int dim;
vect A;
taille(dim);
saisie(dim,A);
affiche(dim,A);
printf("Taille de A : %d",dim);
system("pause" );
return(0);
}
Message édité par ximothov le 16-01-2008 à 12:27:26