Petit problème de pointeur
Bonjour,
me voila sur ce joli forum, afin de solliciter de nouveau votre aide.
Je commence à programmer en c, et comme tout débutant dans ce chouette langage, les problèmes de pointeurs font vite leurs apparitions :cry:
Je m'explique. Je dois réaliser un programme, ayant pour but de demander à un utilisateur de saisir la longueur, puis la largeur d'un rectangle, et calculer le périmètre et la surface du rectangle.... (et oui, c'est très pédagogique^^).
Le problème, c'est que lorsque je compile, des jolies valeurs sortant tout droit du fin fond de la mémoire de mon ordi s'affiche, au lieu de m'afficher un périmètre, donc ça ressemble fortement au fameux problème de pointeurs :(
Voici donc mon code, après de nombreuses lectures de forums...
Code:
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
| #include <stdio.h>
#include <stdlib.h>
struct rectangle{
int longueur;
int largeur;
};
/* Ici, normalement on initialise un rectangle */
initialisation(struct rectangle *rec){
printf("Veulillez saisir la longueur du rectangle : ");
scanf("%d",rec->longueur);
/* En commentaire, car je ne sais pas pourquoi, mais ça bloc le pgm */
/*printf("Veulillez saisir la largeur du rectangle : ");
scanf("%d",rec->largeur);*/
}
/* Calcul le périmètre du rectangle */
int perimetre(struct rectangle *rec){
int p;
p = 2*rec->longueur+2*rec->largeur;
return p;
}
/* Calcul la surface du rectange */
int surface(struct rectangle *rec){
int p;
p = rec->longueur*rec->largeur;
return p;
}
/*Compare deux rectangle, mais sans grande importance pour le moment */
/*int grandeur(struct rectangle rec1, struct rectangle rec2){
if(surface(rec1)<surface(rec2))
printf ("la longueur du plus grand rectangle est : %d, et ca largeur est : %d \n", rec2.longueur,rec2.largeur);
else
printf ("la longueur du plus grand rectangle est : %d, et ca largeur est : %d\n", rec1.longueur,rec1.largeur);
}
*/
int main(int argc, char *argv[]){
struct rectangle rec;
struct rectangle rec2;
initialisation(&rec);
printf ("le perimetre du rectangle est : %d \n",perimetre(&rec));
printf ("la surface du rectangle est : %d \n", surface(&rec));
//grandeur(rec,rec2);
system("PAUSE");
return 0;
} |
Merci d'avance pour votre aide,
Cordialemnt