вот, что у меня получилось...
| Код | // mass.cpp : вывести самые длинныые убывающую и возрамтающие последовательности //
#include "stdafx.h" #include "stdio.h" #include "conio.h" #include <stdlib.h> //#define kl 10
int _tmain(int argc, _TCHAR* argv[]) {int *m, i,t,lup,l,c,p,u, kl, r, s, v; i=t=lup=l=c=u=p=v=s=r=0;
m1: printf("vvedite razmer massiva: \n"); scanf("%d", &kl);
if((m=(int*)malloc(kl*sizeof(int)))==NULL) {puts("net pamyaty, vvedite menshiy massiv"); goto m1;}
//for(i=0; i<kl; i++) //m[i]=rand();
for(i=0;i<kl;i++) scanf("%d", &m[i]);
for(i=0; i<kl;i++) printf("%d\t", m[i]); puts("");
for(i=1;i<=kl-1;i++) { if(m[i-1]<m[i]) { lup++; if(l<lup) { t=i-lup; l=lup; } } else lup=0; }
for(i=1; i<=kl-1; i++) { if(m[i-1]>m[i]) { c++; if(u<c) { p=i-c; u=c; } } else c=0; }
for(i=1;i<=kl-1;i++) {if(m[i-1]==m[i]) { r++; if(v<r) { s=i-r; v=r; } } else r=0; }
printf("postoyannaya posl: ");
for(i=s;i<=s+v; i++) printf("%d ", m[i]); s++; v++;
printf("\nelementov: %d, pervii: %d\n", v,s);
printf("\nvozrastayuschaya posl: ");
for(i=t;i<=t+l; i++) printf("%d ", m[i]); t++; l++;
printf("\nelementov: %d, pervii: %d\n", l,t);
printf("\nubivayuschaya posl: ");
for(i=p;i<=p+u; i++) printf("%d ", m[i]); p++; u++;
printf("\nelementov: %d, pervii: %d\n", u,p);
return 0; }
|
|