Structure en c
Fermé
Utilisateur anonyme
-
11 avril 2006 à 15:46
chahinez-soft Messages postés 2 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 24 janvier 2008 - 24 janv. 2008 à 16:06
chahinez-soft Messages postés 2 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 24 janvier 2008 - 24 janv. 2008 à 16:06
A voir également:
- Structure en c
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Dans la table des matières du document à télécharger, 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
- Table des matières ne prenant pas en compte tous mes titres - Forum Word
- Dans son restaurant, igor utilise une application pour gérer les réservations. voici une représentation graphique du schéma (structure) de la base de données de l’application. répondez aux questions. - Forum Antivirus
5 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
11 avril 2006 à 16:35
11 avril 2006 à 16:35
Bonjour!
Pourrais tu mettre l'erreur exacte que tu as au moment de la compilation?
Pourrais tu mettre l'erreur exacte que tu as au moment de la compilation?
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
11 avril 2006 à 19:58
11 avril 2006 à 19:58
Pourquoi ta struct liste est définie dans le main et pas en début de fichire ?
le probleme qui se pose dans ton programme c'est que tu as declare la structure dans le main et que la fonction qui va l'utiliser se trouve avant. c'est une erreur de logique; dependement du compilateur ca refuse uniquement de se compiler et compile et se plante.
A+
A+
/*bonjour , je m’appelle Youness , c’est ma répance à votre problème */
#include <stdio.h>
#include <stdlib.h>
void supprime (liste *ls,int k) /*la déclaration de la fonction avant main() */
main()
{
struct liste
{
int t[100]; /* il est possible de définit liste avant main() */
int longueur;
};
struct liste l1;int i;
printf("entrer la longueur de la liste");
scanf("%d",&l1.longueur);
for(i=0;i<l1.longueur;i++)
{
printf("entrer la valeur%d",i);
scanf("%d",&l1.t[i]);
}
supprime(&l1,3); /*il ne va se passe rien si on ne passe pas l’adresse de l1 comme argument
Car ça va nous permet de changer le contenu de l1 */
for(i=0;i<l1.longueur;i++)
{
printf("la valeur%d= %d\n ",i,l1.t[i]);
}
system("pause");
Return 0 ;
}
void supprime(liste *ls,int k) /* la définition de fonction est après le main() */
{
int i,n;
n=ls.longueur;
for(i=k;i<n-1;i++)
{
ls.t[i]=ls.t[i+1];
}
ls.longeur=n-1;
}
Exemple : si on a : l1.longueur=10 est on charger le tableau l1.t [10] par les valeurs suivantes :
i = 0 1 2 3 4 5 6 7 8 9
l1.T[i] = 5 8 7 4 5 7 12 14 15 0
Après la chargement de notre tableau on fait un appelle à la fonction supprime (supprime l1.t[3] ) ,la langueur devient égale à 9 la résulta devient :
L1.[0]=5
L1.[1]=8
L1.[2]=7
L1.[3]=5
L1.[4]=7
L1.[5]=12
L1.[6]=14
L1.[7]=15
L1.[8]=0
#include <stdio.h>
#include <stdlib.h>
void supprime (liste *ls,int k) /*la déclaration de la fonction avant main() */
main()
{
struct liste
{
int t[100]; /* il est possible de définit liste avant main() */
int longueur;
};
struct liste l1;int i;
printf("entrer la longueur de la liste");
scanf("%d",&l1.longueur);
for(i=0;i<l1.longueur;i++)
{
printf("entrer la valeur%d",i);
scanf("%d",&l1.t[i]);
}
supprime(&l1,3); /*il ne va se passe rien si on ne passe pas l’adresse de l1 comme argument
Car ça va nous permet de changer le contenu de l1 */
for(i=0;i<l1.longueur;i++)
{
printf("la valeur%d= %d\n ",i,l1.t[i]);
}
system("pause");
Return 0 ;
}
void supprime(liste *ls,int k) /* la définition de fonction est après le main() */
{
int i,n;
n=ls.longueur;
for(i=k;i<n-1;i++)
{
ls.t[i]=ls.t[i+1];
}
ls.longeur=n-1;
}
Exemple : si on a : l1.longueur=10 est on charger le tableau l1.t [10] par les valeurs suivantes :
i = 0 1 2 3 4 5 6 7 8 9
l1.T[i] = 5 8 7 4 5 7 12 14 15 0
Après la chargement de notre tableau on fait un appelle à la fonction supprime (supprime l1.t[3] ) ,la langueur devient égale à 9 la résulta devient :
L1.[0]=5
L1.[1]=8
L1.[2]=7
L1.[3]=5
L1.[4]=7
L1.[5]=12
L1.[6]=14
L1.[7]=15
L1.[8]=0
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
chahinez-soft
Messages postés
2
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
24 janvier 2008
3
24 janv. 2008 à 16:06
24 janv. 2008 à 16:06
salut je suis daccord avec Youness tu dois déclarer liste comme un nouveau type avec typedef et ceci avant void entant que paramètre global comme tu pouras l'utiliser à n'importe quel moment et la liste doit passer par adresse si tu veux la modifier en ajoutant * devant son nom