Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- //Да се напише програма која за дадена низа А од N
- //(N < 100) природни броеви ќе ја најде најдолгата
- //растечка подниза.
- //Да се отпечатат на СИ почетниот и крајниот индекс
- //на оваа растечката подниза, како и геометриската
- //средина [ (a_1 * a_2 * ... * a_n)^{\frac{1}{n}} ]
- //на растечката подниза. Доколку има повеќе низи со
- //иста (најголема) должина, испечатете ги податоците
- //за првата. Бројот на елементи на низата и
- //елементите на низата се читаат од СВ.
- #define MAX 100 //uslovot vika max 100 chlena se vnesuvaat
- int main()
- {
- int n,a[MAX]; //definiram n, aka kolku chlenovi i a[100]
- scanf("%d",&n); //skenira n
- int i; //najavuvam i za forot dole
- for(i=0;i<n;i++) //so ova se vnesuva nizata
- scanf("%d",&a[i]);
- int pom=0,ilok=0,dlok=0,prpom=1; //ova se shitovite xD
- //ilok dole se pamti kako posledniot chlen od podnizata
- //dlok e prviot chlen aka od kaj pochnalo, ilok e do kaj trae toj uslov
- //prpom dole ja stavam da bide proizvodot na takvata promenliva
- int j; //pom e ustvari ona dole sho e brojot na chlenovi na najgolemata podniza
- int proizvod; //proizvod e proizvod lol xD
- int br=1; //br e brojachot sho go koristime da broime kolku chlenovi se vo podniza
- for(i=0;i<n;i++) //glaven for
- {
- proizvod=1; br=1; //se resetiraat proizvod i br, pochnuvaat od 1 deka taka.
- for(j=i;j<n;j++) //maliot for pochnuva od i trae do n
- {
- if(a[j]<a[j+1]) //ako momentalniot chlen e pomal od sledniot
- {
- br++; //toa znachi uslovot se ispolnuva i raste podnizata
- proizvod=proizvod*a[j]; //pa go zgolemuvam brojot na chlenovi
- } //i proizvodot go naogjam do tuka
- else
- { //inache ako ne e pogolem tuka prekinuva uslovot
- if(br>pom) //pa ako brojachot e pogolem od toa sho go pamtime aka
- { //nekoj prethoden brojach togash znachi deka ovaa podniza
- proizvod=proizvod*a[j]; //e pogolema pa zatoa gi zapishuvam pomoshnite
- pom=br; //promenlivi da bidat na tie momentalnite
- ilok=j; //a proizvod ushe ednash go mnozham deka tuka se prekinuva uslovot
- dlok=i; //ama i momentalniot chlen e del od podnizata
- prpom=proizvod; //ilok i dlok se ustvari od kaj pochnuva i do kaj stiga
- }
- break; //shtom tuka prekinuva podnizata go gasime maliot for
- } //za da se vratime na golemiot vtor i da pochneme se od novo
- }
- }
- printf("pochnuva od %d trae do %d i geo.sred. e %f",a[dlok],a[ilok],pow(prpom,1.0/(float)pom));
- //printanjeto e samo chlenot na nizata sho go pamtime deka od tamu pochnuva i do tamu zavrshuva
- //i drugoto e funkcija sho e del od math.h so sintaksa pow(broj,na stepen)
- //vo sluchajot ni treba nti koren pa zatoa e prpom(aka proizvodot) na 1/pom
- //pom e brojot na chlenovi, dodadov .0 na kecot i (float) pred pom deka rezultatot od 1/nesho
- //treba da bide decimalen broj za da raboti programata
- return 0; //i ondak to.
- }
Advertisement
Add Comment
Please, Sign In to add comment