Subsecvență crescătoare (clasa a 5-a)
Notă: rezolvaţi această problemă fără a folosi tablouri (vectori).
Denumim subsecvenţă crescătoare o subsecvenţă de numere unul după altul care au proprietatea că fiecare număr este mai mare sau egal cu cel din-naintea lui.
Cerinţă
Dată o secvenţă de n numere să se calculeze şi afişeze lungimea celei mai lungi subsecvenţe crescătoare.
Date de intrare
Fişierul de intrare subcresc.in conţine pe prima linie numărul n de numere. Pe a doua linie conţine cele n numere separate prin spaţii.
Date de ieşire
În fişierul de ieşire subcresc.out veţi scrie un singur număr, lungimea celei mai lungi subsecvenţe crescătoare.
Restricţii
1 ≤ n ≤ 1000
numerele din secvenţă sînt mai mici ca 100
Răspunsuri la întrebare
Răspuns de
2
#include <stdio.h>
int main() { FILE *fin, *fout; fin = fopen("subcresc.in", "r"); fout = fopen("subcresc.out", "w"); int n, a, b, l, maxl, i; fscanf(fin, "%d%d", &n, &a); l = 1; maxl = 1; for (i = 1; i < n; i++) { fscanf(fin, "%d", &b); if (a <= b) { l++; if (l > maxl) maxl = l; } else l = 1; a = b; } fprintf(fout, "%d", maxl); return 0;}
int main() { FILE *fin, *fout; fin = fopen("subcresc.in", "r"); fout = fopen("subcresc.out", "w"); int n, a, b, l, maxl, i; fscanf(fin, "%d%d", &n, &a); l = 1; maxl = 1; for (i = 1; i < n; i++) { fscanf(fin, "%d", &b); if (a <= b) { l++; if (l > maxl) maxl = l; } else l = 1; a = b; } fprintf(fout, "%d", maxl); return 0;}
TDRBOSS:
mersi
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă