Structure en c
Utilisateur anonyme
-
chahinez-soft Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
chahinez-soft Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
bonjour
voila g un exo en c qui conserne les liste contigue
et c'est une structure de deux champ un tableau et une longueur
bon mon probleme c ke o moment de la compilation il ya une erreur o niveau de la procedure "suprrime"
#include <stdio.h>
#include <stdlib.h>
void supprime(liste ls,int k) /*LE PROBLEME EST ICI*/
{
int i,n;
n=ls.longueur;
for(i=k;i<=n-1;i++){
ls.t[i]=l.t[i+1];}
ls.longeur=n-1;
}
main()
{
struct liste{
int t[100];
int longueur;};
struct liste l1;int i;
printf("entrer l 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(liste,3);
for(i=0;i<l1.longueur;i++){
printf("la valeur%d= %d\n ",i,l1.t[i]);
}
system("pause");
}
voila g un exo en c qui conserne les liste contigue
et c'est une structure de deux champ un tableau et une longueur
bon mon probleme c ke o moment de la compilation il ya une erreur o niveau de la procedure "suprrime"
#include <stdio.h>
#include <stdlib.h>
void supprime(liste ls,int k) /*LE PROBLEME EST ICI*/
{
int i,n;
n=ls.longueur;
for(i=k;i<=n-1;i++){
ls.t[i]=l.t[i+1];}
ls.longeur=n-1;
}
main()
{
struct liste{
int t[100];
int longueur;};
struct liste l1;int i;
printf("entrer l 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(liste,3);
for(i=0;i<l1.longueur;i++){
printf("la valeur%d= %d\n ",i,l1.t[i]);
}
system("pause");
}
A voir également:
- Structure en c
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Structure url - Guide
- Trouvez l'erreur dans la structure du document et corrigez-la. - Forum Word
- Error pdf structure 40 - Forum PDF
5 réponses
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