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:#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); }
-----