Cześć! Mój program ma za zadanie przesuwać indeksy tablicy o 5 w prawo po wygenerowaniu wcześniej liczb (pseudo)losowych. Gdy wykonam ową funkcję do przesunięcia to liczby zmieniają się i zaczynają powtarzać. Gdzie tkwi błąd ? Z góry dziękuję :)
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void generuj_liczby(int b[],int k)
{
int i;
system("CLS");
srand(time(NULL));
for (i=0;i<k;i++)
{
b[i]=rand()%601-300;
cout<<b[i]<<endl;
}
return;
}
void wyswietl_liczby(int b[],int k)
{
int i;
system("CLS");
cout<<"Oto liczby zapisane w tablicy:\n\n";
for (i=0;i<k;i++)
{
cout<<b[i]<<" ";
}
return;
}
void przesun5p(int b[],int k)
{
int i,pom[5];
for(i=0;i<5;i++)
pom[i]=b[k-5+i];
for (i=k-6;i>-1;i--)
b[i+5]=b[i];
for(i=0;i<5;i++)
pom[i]=b[i];
return;
}
int il_uj(int b[], int k)
{
int i,ilu;
ilu=0;
for(i=0;i<k;++i)
{
if(b[i]<0) ilu++;
}
return ilu;
}
int main()
{
char w;
int a[5000];
int n,uj;
float Sr;
cout<<"\nWybierz ilosc liczb : ";
cin>>n;
do
{
system("CLS");
cout<<"Wybierz co chcesz zrobic:";
cout<<"\n1. Generowanie liczb - 1";
cout<<"\n2. Wyswietlenie liczb z tablicy - 2";
cout<<"\n3. Przesuniecie o 5 w prawo - 3";
cout<<"\n4. Ilosc liczb ujemnych - 4";
cout<<"\n5. Koniec - 5\n";
cin>>w;
switch (w)
{
case '1' : generuj_liczby(a,n); break;
case '2' : wyswietl_liczby(a,n); break;
case '3' : przesun5p(a,n); break;
case '4' : uj=il_uj(a,n);
cout<<"Ilosc liczb ujemnych w tablicy: "<<uj;break;
}
cout<<"\n";
system("PAUSE");
} while (w!='5');
return 0;
}