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);
} |
Partager