Pb de compilation
yedez
Messages postés
69
Date d'inscription
Statut
Membre
Dernière intervention
-
to_char Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
to_char Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
slt tout le monde :pouvez vous m'aide et me chercher l erreur de l execution de ma fonction "seek_valeurs" qui fait une recherche dichotomique d'un tableau trie et renvois\t son occurence !!!
le probleme C qu'elle renvoie toujours 0
aidez moi s'il vous plait et merci d'avance :)
le probleme C qu'elle renvoie toujours 0
aidez moi s'il vous plait et merci d'avance :)
int seek_valeurs(int t[],int n,int v)
{
int deb,fin,m,k;
k=0;
deb=0;
fin=n-1;
while (deb<fin)
{
m=(deb+fin)/2;
if (t[m]>v)
fin=m-1;
else if (t[m]<v)
deb=m+1;
else
{
k=k+1;
m=m+1;
}
}
return (k);
}
A voir également:
- Pb de compilation
- Breach compilation c'est quoi - Guide
- Compilation error: expected unqualified-id before '{' token ✓ - Forum C++
- Erreur de compilation projet ou bibliothèque introuvable - Forum Excel
- Erreur de compilation : Projet ou bibliothèque introuvable - Forum VB / VBA
- Must declare a named package because this compilation unit is associated to the named module - Forum Java
12 réponses
pourquoi utilises tu les "int" n'aurait il pas été préférable d'utiliser les "float" ??
sinon deb doit conter jusqu'à n-1 c'est à dire jusqu'à fin
while (deb <= fin ) et non while( deb < fin )
pour le else de la fin, je ne vois pas trop à quoi il sert vu que ici t[m] == v
suffit de retourner "m" qui sera la place de "v" dans le tableau
sinon deb doit conter jusqu'à n-1 c'est à dire jusqu'à fin
while (deb <= fin ) et non while( deb < fin )
pour le else de la fin, je ne vois pas trop à quoi il sert vu que ici t[m] == v
suffit de retourner "m" qui sera la place de "v" dans le tableau
voici un lien qui explique comment tu peux traiter des tableaux 3 dimentions:
https://openclassrooms.com/forum/sujet/tableau-a-3-dimension-31672
essaye de créer un autre programme ou tu essayera ce code et après retourne à exercice comme ca tu saura tres bien comment faire :)
https://openclassrooms.com/forum/sujet/tableau-a-3-dimension-31672
essaye de créer un autre programme ou tu essayera ce code et après retourne à exercice comme ca tu saura tres bien comment faire :)
Hello,
Je me suis permis d'éditer ton message pour rajouter les balises code (4e icone au-dessus de la zone de texte) afin de gagner en lisibilité.
Merci d'y penser la prochaine fois ;)
Je me suis permis d'éditer ton message pour rajouter les balises code (4e icone au-dessus de la zone de texte) afin de gagner en lisibilité.
Merci d'y penser la prochaine fois ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon en faite les en tetes font partie de l enonce je ne peut pas mettre float ni rien d'autre
de plus le probleme qui s 'affiche windows a arrete de fonctionner et va chercher le probleme!!! bon j'ai fait quelque modification au niveau cette fonction mai el meme probleme s'affiche au niveau d'une autre fonction C'est la suppression dun elemet de tableau voila tout mon programme et je note bien que le probleme est au niveau ma derniere fonction la suppression
#include <stdio.h>
int get_option();
int lire_valeurs(int t[]);
void tri_insertion(int t[],int n);
void view(int t[],int n);
int seek_valeurs(int t[],int n,int v );
void delete_element(int t[],int *n, int v);
void main()
{
int t[100],option,n,v,k;
while ( (option=get_option())!=-1)
{
switch(option)
{
case 0:
n=lire_valeurs(t);
break;
case 1:
tri_insertion(t,n);
break;
case 2:
view(t,n);
break;
case 3:
printf("\nValeur Cherchee:\n");
scanf("%d",&v);
k=seek_valeurs(t,n,v);
printf( "nombre de Repetition de %d:%d",v,k);
break;
case 4:
printf("\nValeurs A supprimer:'\n");
scanf ("%d",&v);
delete_element(t,&n,v);
break;
}
}
}
int get_option()
{
int p;
printf("donner la valeur de p\n");
scanf("%d",&p);
if (p==0)
printf ("remplir le tableau\n");
else
if (p==1)
printf("Trier le tableau\n");
else
if (p==2)
printf ("afficher le tableau\n");
else
if (p==3)
printf ("cherchez la valeur demandee \n ");
else
if (p==4)
printf (" supprine la valeur demandee \n ");
return(p);
}
int lire_valeurs(int t[])
{
int i;
i=0;
while ((t[i]=lire_val())!=-1)
i++;
return(i);
}
int lire_val()
{
int val;
scanf("%d",&val);
return(val);
}
void tri_insertion(int t[],int n)
{
int i,X,j;
for (i=1;i<n;i++)
{
X=t[i];
j=i;
while ((X<t[j-1])&&(j>0))
{
t[j]=t[j-1];
j=j-1;
}
t[j]=X;
}
}
void view(int t[],int n)
{
int i;
for (i=0;i<n;i++)
printf (" %d",t[i]);
}
int seek_valeurs(int t[],int n,int v)
{
int deb,fin,m,k;
k=0;
deb=0;
fin=n-1;
m=(deb+fin)/2;
while (deb<fin)
{
if (t[m]>v)
{
fin=m-1;
m=(deb+fin)/2;
}
else if (t[m]<v)
{
deb=m+1;
m=(deb+fin)/2;
}
else
{k=k+1;
m=m+1;
}
}
return (k);
}
void delete_element(int t[],int *n, int v)
{
int i;
i=1;
while (i<*n)
{
if (t[i]==v)
{
decalage (t,*n,i);
i++;
}
else
i++;
}
}
int decalage (int t[],int *n, int p)
{
int i;
for (i=p;i<=*n-1;i++)
{
t[i]=t[i+1];
}
*n=*n-1;
return (*n);
}
de plus le probleme qui s 'affiche windows a arrete de fonctionner et va chercher le probleme!!! bon j'ai fait quelque modification au niveau cette fonction mai el meme probleme s'affiche au niveau d'une autre fonction C'est la suppression dun elemet de tableau voila tout mon programme et je note bien que le probleme est au niveau ma derniere fonction la suppression
#include <stdio.h>
int get_option();
int lire_valeurs(int t[]);
void tri_insertion(int t[],int n);
void view(int t[],int n);
int seek_valeurs(int t[],int n,int v );
void delete_element(int t[],int *n, int v);
void main()
{
int t[100],option,n,v,k;
while ( (option=get_option())!=-1)
{
switch(option)
{
case 0:
n=lire_valeurs(t);
break;
case 1:
tri_insertion(t,n);
break;
case 2:
view(t,n);
break;
case 3:
printf("\nValeur Cherchee:\n");
scanf("%d",&v);
k=seek_valeurs(t,n,v);
printf( "nombre de Repetition de %d:%d",v,k);
break;
case 4:
printf("\nValeurs A supprimer:'\n");
scanf ("%d",&v);
delete_element(t,&n,v);
break;
}
}
}
int get_option()
{
int p;
printf("donner la valeur de p\n");
scanf("%d",&p);
if (p==0)
printf ("remplir le tableau\n");
else
if (p==1)
printf("Trier le tableau\n");
else
if (p==2)
printf ("afficher le tableau\n");
else
if (p==3)
printf ("cherchez la valeur demandee \n ");
else
if (p==4)
printf (" supprine la valeur demandee \n ");
return(p);
}
int lire_valeurs(int t[])
{
int i;
i=0;
while ((t[i]=lire_val())!=-1)
i++;
return(i);
}
int lire_val()
{
int val;
scanf("%d",&val);
return(val);
}
void tri_insertion(int t[],int n)
{
int i,X,j;
for (i=1;i<n;i++)
{
X=t[i];
j=i;
while ((X<t[j-1])&&(j>0))
{
t[j]=t[j-1];
j=j-1;
}
t[j]=X;
}
}
void view(int t[],int n)
{
int i;
for (i=0;i<n;i++)
printf (" %d",t[i]);
}
int seek_valeurs(int t[],int n,int v)
{
int deb,fin,m,k;
k=0;
deb=0;
fin=n-1;
m=(deb+fin)/2;
while (deb<fin)
{
if (t[m]>v)
{
fin=m-1;
m=(deb+fin)/2;
}
else if (t[m]<v)
{
deb=m+1;
m=(deb+fin)/2;
}
else
{k=k+1;
m=m+1;
}
}
return (k);
}
void delete_element(int t[],int *n, int v)
{
int i;
i=1;
while (i<*n)
{
if (t[i]==v)
{
decalage (t,*n,i);
i++;
}
else
i++;
}
}
int decalage (int t[],int *n, int p)
{
int i;
for (i=p;i<=*n-1;i++)
{
t[i]=t[i+1];
}
*n=*n-1;
return (*n);
}
d'accord je suis desole je vais seulement copier la fonction qui contient l'erreur
qqe chose de plus je ne comprends pas ce que vous voulez dire par "C pa la bonen maniere de traiter un tableau trie"
void delete_element(int t[],int *n, int v)
{
int i;
i=1;
while (i<*n)
{
if (t[i]==v)
{
decalage (t,*n,i);
i++;
}
else
i++;
}
}
int decalage (int t[],int *n, int p)
{
int i;
for (i=p;i<=*n-1;i++)
{
t[i]=t[i+1];
}
*n=*n-1;
return (*n);
}
qqe chose de plus je ne comprends pas ce que vous voulez dire par "C pa la bonen maniere de traiter un tableau trie"
void delete_element(int t[],int *n, int v)
{
int i;
i=1;
while (i<*n)
{
if (t[i]==v)
{
decalage (t,*n,i);
i++;
}
else
i++;
}
}
int decalage (int t[],int *n, int p)
{
int i;
for (i=p;i<=*n-1;i++)
{
t[i]=t[i+1];
}
*n=*n-1;
return (*n);
}
si c'est un tableau à une dimension je crois que ça a l'air correcte mais je ne peux pas juger plus car je n'est pas l'a fonction main et je ne sais pas ce que le programme dois faire ni ce que le compilateur a afficher comme erreur :)
bon le programme a b1 fait la compilation j ai entre les valeurs de tableau ensuite il ya le tri de tableau, son affichage,apres le pg a renvoye l occurence d un entier que j ai saisi et ainsi s'affiche le probleme quand je demande au pg de supprimer un element de tableau une alerte s'annonece et m'avertit que le fichie a arreter de fonctionner et windows essayera de trouver l'erreur et voila
et MerCi d'avance :)
et MerCi d'avance :)
ah ben l'a t'es plus claire :) :)
le programme s'arrête parce qu'il essaye d'accéder à une case de mémoire qui n'est lui pas attribuer donc le système d'exploitation est obliger d'arrêter le programme
CAD que quelque pars dans ton code il y a une erreur que je peux malheureusement pas identifier :)
le programme s'arrête parce qu'il essaye d'accéder à une case de mémoire qui n'est lui pas attribuer donc le système d'exploitation est obliger d'arrêter le programme
CAD que quelque pars dans ton code il y a une erreur que je peux malheureusement pas identifier :)