TwiNNeR

Motherfucker zadacha C

Oct 27th, 2014
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.52 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. //Да се напише програма која за дадена низа А од N
  6. //(N < 100) природни броеви ќе ја најде најдолгата
  7. //растечка подниза.
  8. //Да се отпечатат на СИ почетниот и крајниот индекс
  9. //на оваа растечката подниза, како и геометриската
  10. //средина [ (a_1 * a_2 * ... * a_n)^{\frac{1}{n}} ]
  11. //на растечката подниза. Доколку има повеќе низи со
  12. //иста (најголема) должина, испечатете ги податоците
  13. //за првата. Бројот на елементи на низата и
  14. //елементите на низата се читаат од СВ.
  15.  
  16. #define MAX 100  //uslovot vika max 100 chlena se vnesuvaat
  17.  
  18. int main()
  19. {
  20.     int n,a[MAX]; //definiram n, aka kolku chlenovi i a[100]
  21.     scanf("%d",&n); //skenira n
  22.     int i; //najavuvam i za forot dole
  23.  
  24.     for(i=0;i<n;i++) //so ova se vnesuva nizata
  25.         scanf("%d",&a[i]);
  26.        
  27.     int pom=0,ilok=0,dlok=0,prpom=1; //ova se shitovite xD
  28.             //ilok dole se pamti kako posledniot chlen od podnizata
  29.             //dlok e prviot chlen aka od kaj pochnalo, ilok e do kaj trae toj uslov
  30.             //prpom dole ja stavam da bide proizvodot na takvata promenliva
  31.     int j; //pom e ustvari ona dole sho e brojot na chlenovi na najgolemata podniza
  32.     int proizvod; //proizvod e proizvod lol xD
  33.     int br=1; //br e brojachot sho go koristime da broime kolku chlenovi se vo podniza
  34.     for(i=0;i<n;i++) //glaven for
  35.     {
  36.         proizvod=1; br=1; //se resetiraat proizvod i br, pochnuvaat od 1 deka taka.
  37.         for(j=i;j<n;j++) //maliot for pochnuva od i trae do n
  38.         {
  39.  
  40.             if(a[j]<a[j+1]) //ako momentalniot chlen e pomal od sledniot
  41.             {
  42.                 br++; //toa znachi uslovot se ispolnuva i raste podnizata
  43.                 proizvod=proizvod*a[j]; //pa go zgolemuvam brojot na chlenovi
  44.             }       //i proizvodot go naogjam do tuka
  45.             else
  46.             {  //inache ako ne e pogolem tuka prekinuva uslovot
  47.                 if(br>pom) //pa ako brojachot e pogolem od toa sho go pamtime aka
  48.                 {          //nekoj prethoden brojach togash znachi deka ovaa podniza
  49.                     proizvod=proizvod*a[j]; //e pogolema pa zatoa gi zapishuvam pomoshnite
  50.                     pom=br; //promenlivi da bidat na tie momentalnite
  51.                     ilok=j; //a proizvod ushe ednash go mnozham deka tuka se prekinuva uslovot
  52.                     dlok=i; //ama i momentalniot chlen e del od podnizata
  53.                     prpom=proizvod; //ilok i dlok se ustvari od kaj pochnuva i do kaj stiga
  54.                 }
  55.                 break; //shtom tuka prekinuva podnizata go gasime maliot for
  56.             } //za da se vratime na golemiot vtor i da pochneme se od novo
  57.         }
  58.     }
  59.    
  60.     printf("pochnuva od %d trae do %d i geo.sred. e %f",a[dlok],a[ilok],pow(prpom,1.0/(float)pom));
  61.     //printanjeto e samo chlenot na nizata sho go pamtime deka od tamu pochnuva i do tamu zavrshuva
  62.     //i drugoto e funkcija sho e del od math.h so sintaksa pow(broj,na stepen)
  63.     //vo sluchajot ni treba nti koren pa zatoa e prpom(aka proizvodot) na 1/pom
  64.     //pom e brojot na chlenovi, dodadov .0 na kecot i (float) pred pom deka rezultatot od 1/nesho
  65.     //treba da bide decimalen broj za da raboti programata
  66.     return 0; //i ondak to.
  67. }
Advertisement
Add Comment
Please, Sign In to add comment