Tableau contenant des references de structure
Fermé
adrien
-
23 déc. 2006 à 19:44
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 déc. 2006 à 09:49
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 déc. 2006 à 09:49
A voir également:
- Tableau contenant des references de structure
- Tableau croisé dynamique - Guide
- Dans la table des matières de ce document, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Tableau ascii - Guide
- Afficher un tableau en c - Forum C
1 réponse
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
24 déc. 2006 à 09:49
24 déc. 2006 à 09:49
Salut,
en attendant la réponse d'un pro ....
ta structure a la forme
aff = (struct affectation *) malloc(3 * sizeof(struct affectation))
Et voici le code
en attendant la réponse d'un pro ....
ta structure a la forme
------------------ | ---------------- | ||[valeur][lettre]|| | ---------------- | ------------------si j'ai besoin de saisir 3 elements je dois allouer 3 cases
aff = (struct affectation *) malloc(3 * sizeof(struct affectation))
Un tableau de structures de 3 éléments
--------------------------------------------------------------
| ---------------- | | ---------------- | | ---------------- |
||[valeur][lettre]|| ||[valeur][lettre]|| ||[valeur][lettre]||
| ---------------- | | ---------------- | | ---------------- |
--------------------------------------------------------------
CASE 0 CASE 1 CASE 2
Et voici le code
#include<stdio.h>
#include<stdlib.h>
int main()
{
int termine=0,c,nb,i=0,elem;
struct affectation {
int valeur;
char lettre;
};
struct affectation *aff;
/* affichage de la taille de la structure affectation
* qui contient un integer et un char
*/
printf("Taille structure initiale: %d\n",sizeof(struct affectation));
/* choisir le nombre d elements
* qu on veuille saisir
* qui veut dire que pour un nombre N d elements
* on devra saisir N fois
* une valeur et une lettre
*/
printf("Entrez le nombre d'éléments : ");
scanf("%d",&elem);
/* allocation de la mémoire
* nombre d elements * taille de la structure
*/
aff = (struct affectation *) malloc(elem * sizeof(struct affectation));
/* la taille de tableau de structures
* apres l allocation de la memoire
*/
printf("Taille de tableau de structures : %d x %d = %d\n",
elem,sizeof(struct affectation),elem * sizeof(struct affectation));
/* TANT QUE je n entre pas -1
* ET le compteur est plus petit
* que le nombre d element
*
* plus petit puisque l indice de tableau
* commence à zero
* donc les indices de tableau
* seront 0, 1 et 2
*/
while(! termine && i < elem){
printf("Entrez une valeur (-1 pour quitter): ");
scanf("%d",&(aff[i].valeur));
/* je compare la valeur saisie
* avec -1
* si le test et vrai
* alors je sors de la boucle
*/
termine=(aff[i].valeur==-1);
/* vider le buffer */
c=getchar();
/* SI on n a pas taper -1
* on continue la saisie
*/
if (! termine){
printf("Entrez une lettre : ");
scanf("%c",&(aff[i].lettre));
i++;
}
}
/* sauvegarde de nombre d elements
* saisies
*/
nb=i;
/* affichage */
for(i=0;i<nb;i++)
printf("valeur = %d et lettre = %c\n"
,aff[i].valeur,aff[i].lettre);
return 0;
}
-- Joyeux Noël lami20j