Pobleme sur programme [débutant]
kent87042
-
kent87042 -
kent87042 -
Bonjour,
j'ai un soucis lorsque j'entre une cible négative mon programme plante te je ne sait comment y remédier...
voici le code tester le ...
j'ai un soucis lorsque j'entre une cible négative mon programme plante te je ne sait comment y remédier...
voici le code tester le ...
#include<stdio.h>
#define MAX 100
#include<windows.h>
void main()
{
int vec[MAX+1],i,nbel=-1,test,temp,j,cible,present,position,*pa;
//blindage de saisie
printf("\t\t\tDossier numero 1\n\n\n");
while(nbel<=0 || nbel>MAX)
{
printf("Saisir le nombre de cases dans le vecteur > ");
fflush(stdin);
scanf("%d",&nbel);
}
printf("\n");
i=0;
pa=&vec[0];
while(i<nbel)
{
test=0;
while(test==0)
{
printf("Saisir une valeur dans la case %d> " ,i+1);
fflush(stdin);
test=scanf("%d",pa);
pa++;
}
i++;
}
printf("\n\n");
printf("\t\t Vecteur non trie:\n");
printf("\t\t ------------------\n");
printf("\n");
i=0;
pa=&vec[0];
while(i<nbel)
{
printf("\t[%d]",*pa);
pa++;
i++;
}
printf("\n\n");
//Triage par extraction
i=0;
pa=&vec[0];
while(i<nbel)
{
j=i+1;
pa=&vec[0];
while(j<nbel)
{
if(*(pa+1) < *pa)
{
temp=*pa;
*pa=*(pa+1);
*(pa+1)=temp;
}
j++;
pa++;
}
i++;
pa++;
}
//Affichage vecteur trié
printf("\n");
printf("\t\t Vecteur trie:\n");
printf("\t\t -------------\n");
printf("\n");
i=0;
pa=&vec[0];
while(i<nbel)
{
printf("\t[%d]",*pa);
i++;
pa++;
}
printf("\n\n");
//Cible, recherche par methode de la sentinelle
test=0;
while(test==0)
{
printf("\n\nSaisissez une cible a rechercher > ");
fflush(stdin);
test=scanf("%d",&cible);
}
i=0;
pa=&vec[0];
while(*pa != cible)
{
i++;
pa++;
}
if(i<=nbel)
{
present=1;
position=i;
}
else
{
present=0;
}
if(present==1)
{
printf("\n> La cible existe dans la case %d\n\n",i+1);
}
if(present==0)
{
printf("\n> La cible n'existe pas !\n\n");
}
}
Configuration: Windows XP Firefox 3.0.4
11 réponses
-
bonjour
si tu ne veux pas de nombre negatif
if ( nb < 0)
nb = -nb;
Adns -
Concretement je n'arrive pas a voir ou tu initialise ta varible cible :-/
-
Non en fait j'aimerai que quant je dit que la cible est un chiffre négatif ben qu'il m'affiche si la cible existe ou pas !
Pour répondre a xav la cible c'est l'utilisateur qui la rentre -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Le programme tourne bien partout sauf quand l'utilisateur rentre une valeur négative dans la cible
test=0; while(test==0) { printf("\n\nSaisissez une cible a rechercher > "); fflush(stdin); test=scanf("%d",&cible); }
Si on rentre une valeur positive ça marche si non le prog plante -
oui mais a quel endroit précisement???
quelle ligne quoi? -
J'en sais rien moi y plante quoi ! en me disant ceci
"LC11.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
-
Le debbugeur est ton ami...
il te dira a quelle ligne il plante et pk! -
Effectivement !
il plante au while
i=0; pa=&vec[0]; while(*pa != cible) { i++; pa++; }
pa= CXX0030: Error: expression cannot be evaluated
&vec[0]= &vec[0] 0x0012fdec
Mais tjs pas trouvé la solution -
test=scanf("%d",pa);
apparement t'as oublier une * la.... je sais pas peut etre c ca ^^ -