Warnings de compilation et résultat incorrect
Bonjour,
Je souhaite écrite un programme qui à partir d’un tableau d’entiers d’au moins un entier, fournit le nombre de sous-séquences croissantes de ce tableau, ainsi que les indices de début et de fin de la plus grande sous-séquence.
J'ai eu des warnings de compilation dans 3 lignes (warning: assignment makes pointer from integer without a cast [-Wint-conversion]) et le résultat est incorrect, ça me donne toujours 0.
Aidez-moi SVP! je vous remercie.
Voilà mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #include <stdio.h>
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++;
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);
} |