Accueil > Forum > > > > stucture,pointeurs en c
stucture,pointeurs en c
vendredi 7 novembre 2008 à 23:48:20 |
stucture,pointeurs en c

sdiri_med
|
salut pr tou l'monde qui peux m'aidé a resoudre se probléme en c ala base des structures & les pointeur : 1 / écrire un tableau de 20 éléments (etudiants).un etudiant et défini par son : nom prénom spécialité CIN =>un nbre entier NCE=>un nbre entier niveau=>chiane de caractéres groupe=>un nbre entier moyen général=>float 2 / saisir les 20 etudiant en utilisant un pointeur sur le tableau d'étudiants 3 / afficher les etudiants dont le nom commence par 'c'. vrément c trés urgent pour moi d'une part pour amélioré mon note de test deuxiement en regardent le code source j'vai comprendre mieux cette partie en c  merci bcp d'avence
|
|
samedi 8 novembre 2008 à 02:15:52 |
Re : stucture,pointeurs en c

tarkos01
|
Réponse acceptée !
Pour commencer je te conseillerai d'utiliser struct avec typedefcela va t'éviter de réécrire partout "struct".
exemple de définition d'une structure:
typedefstruct Nom_de_ta_structure Nom_de_ta_structure; /*(ce n'est pas une erreur il y a 2 fois le nom de la structure séparé par un espace terminé par un point virgule).*/ struct Nom_de_ta_structure { char nom[taille]; //à toi de fixer la taille du tableau char prenom[taille]; //idem long CIN; long NCE; ... }; //il est importante de mettre le point virgule après l'accolade
/*par contre il faut aussi initialiser toutes déclaration interne à ta structure; faut le faire avec des boucles c'est plus rapide*/
/*mais si tu veux que ce soit manuel pour cet exemple il faut proceder comme ca*/ Nom_de_ta_structure Nom_de_ta_variable = {"","",0,0};/*2 guillement pour les char et 0 pour les nombres*/
/*tu déclare un tableau de 20 Nom_de_ta_structure*/ void fonction_exemple (void){ Nom_de_ta_structure tab[19]; tab[0].nom = "chaîne nom"; tab[0].prenom = "chaîne prenom"; tab[0].CIN = 100; ... }
j'espers t'avoir deja aidé poru la comprehension de structures. corrigez s'il ya des erreurs merci.
TaRkOs
|
|
samedi 8 novembre 2008 à 02:30:50 |
Re : stucture,pointeurs en c
|
samedi 15 novembre 2008 à 20:55:08 |
Re : stucture,pointeurs en c

sdiri_med
|
salut les pro salut tarkos01 voila mon code "compilateur devc++ der version sous windows vista " svp de corrigé mes fauttes et de me guidé NOTE: ce qu'il m'interesse le plus est la partie de pointeur sur le tableau de 20 etudiants comment je peux le crée et le manipulé sur la struct merci bien d'avence.
#include<stdio.h> #include<conio.h> #include<stdlib.h> typedef struct etud etud; struct etud { long cin; long nce; long niveau; float moyenne; char groupe[3]; char specialite[15]; char prenom[15]; char nom[15]; } ; struct etud *tab[19];
int i=0; void lettrec (etud tab[]) {
for(i=0;i<20;i++) { printf("donner le nom de l'etudiant num \n",i); scanf("%s",&tab[i].nom); printf("donner le prenom de l'etudiant\n",i); scanf("%s",&tab[i].prenom); printf("donner le cin de l'etudiant\n"); scanf("%d",&tab[i].cin); printf("donner le nce \n"); scanf("%d",&tab[i].nce); printf("donner son niveau\n"); scanf("%d",&tab[i].niveau); printf("donner la moyenne\n"); scanf("%f",&tab[i].moyenne); printf("donner son groupe\n"); scanf("%s",&tab[i].groupe); printf("donner son specialité\n"); scanf("%s",&tab[i].specialite); }
for (i=0;i<19;i++) {
if (*(tab[i].nom) = 'c') { printf("%s",*tab[i].nom) ; } }
}
main () { void lettrec (etud tab[]); getch(); return(0); }
|
|
samedi 15 novembre 2008 à 22:47:57 |
Re : stucture,pointeurs en c

tarkos01
|
Salut sdiri_med,
pour la déclaration de ton tableau tu n'a pas besoin de mettre l'étoile devant car etud tab[19] est deja un pointeur qui pointe vers 19 types de ta structure "etud"
for (i=0;i<19;i++) >>> tu veux verifier les 20 or dans cette boucle il va verifier de 0 a 18 il faut que utlise <= for(i=0;i<=19;i++) {
"if (*(tab[i].nom) = 'c') " >>> cette partie doit etre une comparaison => if (tab[i].nom == 'c') ... mais ca ne devrait pas fonctionner ca tu compare un caracter à une chaine de caracters. il faut que tu inclus la librairie "string" => #include <string> tu fais ensuite une comparaison avec strbrk ou je ne sais plus quelle est la 2eme fonction qui permet de rechercher un caracter dans une chaine et tu fais un test pour savoir si c'est le premier caracter.
{ printf("%s",*tab[i].nom) ; } } void lettrec (etud tab[]); je suppose que c'est le prototype si c'est le cas il faut le mettre apres les includes. getch() je vois pas ce que ca fait la
je me penche sur ton code et quand je finis de tester je t'écris.
|
|
dimanche 16 novembre 2008 à 05:41:56 |
Re : stucture,pointeurs en c

tarkos01
|
Réponse acceptée !
voila amigo en espérant que ca t'aide sous inux ca tourne sous windows je ne saurai pas te dire :)
/*Includes*/ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<float.h>
/*Protoypes: ils te permettent de rendre tes fonctions flexibles tu pourra mettre tes fonctions apres le main par exemple c'est pour dire o compilateur que cette fonction existe*/ void netoyer (void); void lettrec (void); int test (void);
/* Définition de structure, je vois que tu es un pro maintenant :p */
typedef struct etud etud; struct etud { long cin; long nce; long niveau; float moyenne; char groupe[100]; char specialite[100]; char prenom[50]; char nom[50]; } ;
/*Code*/
int main (){ lettrec (); // test(); return 0; }
/* Fonction qui va vider la mémoire temporaire car je vois que tu aime les scanf ;) , scanf laisse souvent des "parasites" dans la mémoire tampon tres souvent ca provoque des erreurs pour la suite du code alors faut vider le cache a cahque fois que tu utilise scanf il y a une fonction qui fait deja ca : fflush() */
void netoyer (void){ char junk[80]; gets(junk); }
/*A éviter les variables globales*/
void lettrec (){ int i; int a=0, b=0; char *temp, *temp_maj; etud *tab; if((tab = malloc (19*sizeof(etud)))==NULL)/* on test l'allocation mémoire. ceci est un tableau t'inquiete pas :)) */ fprintf(stderr,"allocation mémoire échouée");
for(i=0;i<=6;i++) { printf("donner le nom de l'etudiant %d \n",i); fgets(tab[i].nom,255, stdin);/*Pour les chaines de caracter je te conseil plutot d'utiliser fgets.*/ printf("donner le prenom de l'etudiant %d\n",i); fgets(tab[i].prenom,255, stdin); printf("donner le cin de l'etudiant %d\n", i); scanf("%ld",&tab[i].cin); netoyer();/*permet de vider les parasite dans la memorie temporaire*/ printf("donner le nce de l'etudiant %d\n", i); scanf("%ld",&tab[i].nce); netoyer(); printf("donner le niveau de l'etudiant %d\n", i); scanf("%ld",&tab[i].niveau); netoyer(); printf("donner la moyenne de l'etudiant %d\n", i); scanf("%lf",&tab[i].moyenne); netoyer(); printf("donner le groupe de l'etudiant %d\n", i); fgets(tab[i].groupe,255, stdin); printf("donner la specialité de l'etudiant %d\n", i); fgets(tab[i].specialite,255, stdin); } printf ("\n Nom commençant par 'c': \n"); for (i=0;i<=6;i++){ temp_maj = strchr(tab[i].nom, 'C'); temp = strchr(tab[i].nom, 'c');/*on cherche avec strchr le caracter c*/ if(((a = (temp - tab[i].nom))==0)||((b = (temp_maj - tab[i].nom))==0))/*un peu compliqué on soustrait le depar de la chaine avec la position de la lettre c que renvoi strchr si cette valeur vaut 0 ca veut dire que c est la premiere lettre du prenom*/ printf("\n %s position dans le tableau: %d\n\n",tab[i].nom, i); } free(tab);/*On libere l'espace mémoire alloué*/ }
|
|
dimanche 16 novembre 2008 à 05:45:33 |
Re : stucture,pointeurs en c

tarkos01
|
arf j'ai oublié de changer dans les boucles for il faut mettre 19 au lieu de 6
a deux endroits
TaRkOs Le FéRoCe
|
|
lundi 17 novembre 2008 à 20:35:40 |
Re : stucture,pointeurs en c

tarkos01
|
et l'allocation doit etre également a 20 et non pas 19. la fonction test ne sert a rien tu peux l'enlever.
TaRkOs Le FéRoCe
|
|
Cette discussion est classée dans : tableau, pointeurs, pointeur, nbre, stucture
Répondre à ce message
Sujets en rapport avec ce message
Structures, pointeurs, malloc et realloc reunis !! :) [ par mindark ]
Alors la, je suis completement coulé !Voila mon probleme :J'ai une tableau "grid" qui est un tableau de structures "cell" :struct cell {bool bloquant;
je comprend plus rien(pointeur) [ par bidules ]
Bonjour,Pour moi on utilise les pointeur pour creer des tableau dynamiquement.or j'ai reussi a en declarer un avec une taille entrer a l'aide d'une va
tableau de structures type pointeur [ par chocho ]
Voila, je fait en c unpetit utilitaire de gestion d'adhérents.pour cela j'uilise un tableau de structure adhérent composée de deux pointeurs char *nom
Mémoire partagée et pointeur [ par darsh99 ]
Bonjour,J'essai de faire passer un tableau dynamique, un pointeur donc, d'un programme à un autre, l'adresse est bien passée et les champs non dynamiq
Pointeurs [ par Nykkoo ]
Salut,Etant debutant dans la programmation en C, j'arrive aux chapitres des pointeurs (sniff) et je me trouve confonté aux problemes suivants :double
pointeurs [ par djkill55 ]
bonjour,j aimerai savoir cmt on fait un scanf sur une suite de pointeur, je m explike, je dois faire ca ms sans utiliser les [] , cad les tableux, ms
POINTEURS sur pointeurs [ par ledeveloppeurfou ]
Voila je suis en train de construire une aplication pour une jeu de role, et je suis bloqué. Il me faudrait acceder à des pointeurs en employant de pr
tableau et pointeur [ par cognac ]
Bonjour,Je tente de faire apparaitre les mois de l'année (simple mais pour un débutant....). Bon il y a toujours "cout"12 fois mais j'ai pensé à un ta
appeler un tableau... [ par ilimo ]
bonjour,voici mon probleme :1- j'ai 3 classes : a, b, c2- classe "a" contient un tableau de pointeur sur pointeur de classe "b" : b **tab;3- j'initial
passer un tableau de pointeurs en parametres [ par achirane ]
bonjour,je debute en C (dur..) et j'ai un pb qui va surement vous faire ricaner ;-) :je voudrais passer un tableau de pointeurs en parametre a ma fonc
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|