Помогни ни да направим Uroci.net по - богат! Добави урок

Инвертиране елементи на едномерен масив

C++ » C++
kat51   трудност:    видян: 6250

Задача: Даден е цялочислен масив А(а123,...,аkk+1,...,аn-1,an)  с n елемента . Съставете програма , която по дадена стойност на k (1<k<n) размества елементите на масива А във вида: (аk+1,...,аn-1,an, а123,...,аk ) без да се използва допълнителен масив. Пример: Нека А(1,2,3,4,5,6,7,8,9)  и к=3Инвертира се масив А от първи до трети елемент : 3,2,1Инвертира се масив А от четвърти до края на масива: 9,8,7,6,5,4Новополучения масив е : 3,2,1,9,8,7,6,5,4Инвертира се новополучения масив : 4,5,6,7,8,9,1,2,3Алгоритъм:

  1. Инвертира се масивът  123,...,аk )
  2. Инвертира се масивът  k+1,...,аn-1,an )
  3. Инвертира се масивът (а123,...,an )
Използвани функции: readarr – въвеждане на елементите на масив Аwritearr - извеждане елементите на масив Аinvertirane – обръщане елементите на масив А от [K,L]  където K- долна граница на разглеждания интервал ;  L – горна граница на разглеждания интервал ;

#include<iostream.h>

void readarr(int a[],int);

void invertirane(int a[],int,int,int);

void writearr(int a[],int);

int main(){int a[100];int n;cout<<"broi elementi na masiv a : ";cin>>n;readarr(a,n);int k;cout<<"ot koi element se inverti : ";cin>>k;invertirane(a,n,1,k);invertirane(a,n,k+1,n);invertirane(a,n,1,n);writearr(a,n);

cout<<endl;

return 0;

}

void readarr(int a[],int n)

{

            for(int i=1;i<=n;i++)

            {

                        cout<<"a["<<i<<"] = ";

                        cin>>a[i];

            }

}

void writearr(int a[],int n)

{

            for(int i=1;i<=n;i++)

                        cout<<a[i]<<"  ";

            cout<<endl;

}void invertirane(int a[],int n,int k,int l){            int t=(k+l)/2;

            for(int i=k;i<=t;i++)

            {

                        int x;

                        x=a[i];

                        a[i]=a[l-i+k];

                        a[l-i+k]=x;

            }

}



Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com