Меню сайта

Задача №5

Напишитефункцию поиска самой длинной цепочки из подряд идущих одинаковых элементов — в массиве.

# include &lt-stdio.h&gt-

# include &lt-stdlib.h&gt-

— constn=10-

— ints[n]-

— intx[n],maxk=1,j-

void poisk(int a[])

{

-for(int i=0-i&lt-n-i++)

— — — {

— — — — -int k=1-

— — — — — if(a[i]==a[i+1])

— — — — — — — {j=i-

— — — — — — — — while (a[j]==a[j+1]) { j++- k++-}

— — — — — — — }

— — — — — if(k&gt-maxk)

— — — — — — — {maxk=k-

— — — — — — — — for (k=0-i&lt-=j-i++,k++)

— — — — — — — — — — — x[k]=a[i]-

— — — — — — — }

— — — — }

}

-и мой собственный вариант=Ю

#include&lt-stdio.h&gt-

#include&lt-conio.h&gt-

int arr[]={‘1′,’2′,’4′,’4′,’4′,’4′,’w’,’w’,’32’,’s’,’2′,’3′,’2′,’1′,’2′}-

int i,j,k,m,record,recordabs,end-

int n=sizeof(arr)/sizeof(int)-

int main()

{

-clrscr()-

-m=0-

-recordabs = 0-

-for(i=0, j=i+1- j &lt- n- )

— — — — {

— — — — — if(arr[i] == arr[j])

— — — — — — — -{

— — — — — — — — record = j-i+1-

— — — — — — — — if (recordabs &lt- record) {recordabs =record- k = i-}

— — — — — — — — j++-

— — — — — — — -}

— — — — -else {i++-j=i+1-}

— — — — }

-end =recordabs + k-

— printf(«Position = %d- Lenth = %d-&#92-n The string: «,k,recordabs)-

-for(i=k-i&lt-end-i++)

— — — — -printf(» %c «,arr[i])-

-getch()-

}

Категория: Массивы | Дата: 24.10.12

Меню раздела
Блок