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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|