Merci à vous.
Je suis vraiment débutant c'est pour ca je n'ai pas pu déterminer l'emplacement des erreurs.
Maintenant j'ai mis les * là ou il faut mais le résultat est encore erroné.
Je vous demande juste de m'aider à comprendre ou figure l'erreur, je vais essayer de la corriger par la suite.
void remplir(int* t , int n)
{
int i=0;
for(i=0;i<n;i++)
{
printf("donner la case numero %d :", i+1);
scanf("%d",t+i);
}
}
void positif(int* n)
{
do
{
printf("donner le nbre d'element du tableau :");
scanf("%d",n);
}
while(*n<=0);
}
int main ()
{
int n=0;
int t[20];
positif(&n);
remplir(t,n);
int nbseqcrois=0, inddebpgs=0, indfinpgs=0;
soussequences(t, n, &nbseqcrois, &inddebpgs, &indfinpgs);
printf("Nombre sequences croissantes: %d\n", nbseqcrois);
printf("Indice de début de la plus grande sequence croissante: %d\n", inddebpgs);
printf("Indice de fin de la plus grande sequence croissante: %d\n", indfinpgs);
}
J'ai essayé de simplifier le code en éliminant l'interrogation de l'utilisateur pour continuer ou non (pour revenir directement au menu).
En répondant à votre remarque, j'ai mis toute les instructions dans une boucle do white mais je trouve toujours le même problème .
Voilà un autre essai (fonction main):
je suis encore perdu :(
floatmain(){intl;floats;printf("************************************************\n**** Solveur de polynome ****\n************************************************\n\n");do{l=lirechoix();if(l==1){s=premier();}elseif(l==2){s=second();}scanf("%f",&s);}while(l!=3);}
Pareil avec le déplacement de l'accolade ça affiche un premier résultat puis ne renvoie pas le menu.
C'est vrai je pense qu'il y a une boucle infinie mais je n'ai pas pu déterminer l'emplacement exacte :(
# Enfin pas de warnings mais résultat incorrect
Posté par InToX86 . En réponse au message Warnings de compilation et résultat incorrect. Évalué à 0.
Merci à vous.
Je suis vraiment débutant c'est pour ca je n'ai pas pu déterminer l'emplacement des erreurs.
Maintenant j'ai mis les * là ou il faut mais le résultat est encore erroné.
Je vous demande juste de m'aider à comprendre ou figure l'erreur, je vais essayer de la corriger par la suite.
include
void soussequences (int* t, int n, int* nbseqcrois, int* inddebpgs, int* indfinpgs)
{
int i, tailleseq, indseq, taillepgs;
tailleseq = 1;
taillepgs = 0;
*nbseqcrois = 1;
for(i=0; i<n-1; i++)
{
if(t[i]<=t[i+1])
tailleseq++;
else
{
*nbseqcrois=*nbseqcrois+1;
if(taillepgs<tailleseq)
{
*inddebpgs = i - tailleseq + 1;
taillepgs=tailleseq;
}
tailleseq=1;
}
}
if(taillepgs<tailleseq)
{
*inddebpgs= i - tailleseq + 1;
taillepgs = tailleseq;
}
*indfinpgs = *inddebpgs + taillepgs - 1;
}
void remplir(int* t , int n)
{
int i=0;
for(i=0;i<n;i++)
{
printf("donner la case numero %d :", i+1);
scanf("%d",t+i);
}
}
void positif(int* n)
{
do
{
printf("donner le nbre d'element du tableau :");
scanf("%d",n);
}
while(*n<=0);
}
int main ()
{
int n=0;
int t[20];
positif(&n);
remplir(t,n);
int nbseqcrois=0, inddebpgs=0, indfinpgs=0;
soussequences(t, n, &nbseqcrois, &inddebpgs, &indfinpgs);
printf("Nombre sequences croissantes: %d\n", nbseqcrois);
printf("Indice de début de la plus grande sequence croissante: %d\n", inddebpgs);
printf("Indice de fin de la plus grande sequence croissante: %d\n", indfinpgs);
}
# Un autre essai
Posté par InToX86 . En réponse au message Problème avec le renvoi au menu principal. Évalué à 1. Dernière modification le 20 novembre 2020 à 07:53.
Voilà,
J'ai essayé de simplifier le code en éliminant l'interrogation de l'utilisateur pour continuer ou non (pour revenir directement au menu).
En répondant à votre remarque, j'ai mis toute les instructions dans une boucle do white mais je trouve toujours le même problème .
Voilà un autre essai (fonction main):
je suis encore perdu :(
# Perdu :(
Posté par InToX86 . En réponse au message Problème avec le renvoi au menu principal. Évalué à 1.
Pareil avec le déplacement de l'accolade ça affiche un premier résultat puis ne renvoie pas le menu.
C'est vrai je pense qu'il y a une boucle infinie mais je n'ai pas pu déterminer l'emplacement exacte :(