Witam ,mam spory problem z pętlami - nie wiem czemu program się wysypuje.
wystarczy odpalić ten kod poniżej,wybrać 2 , potem 3 ,wpisać 1 3 7 ,i zobaczyć że pozycja będzie się zmieniać a wartość najmniejsza nie ,i tu moje wołanie o pomoc.
Czy ktoś mógłby mi pomóc i wskazać błędy ?

Przesyłam od razu treść zadania:
Zaproponuj algorytm sprawdzający, czy wyrazy ciągu spełniają zależności ai <=ai+1 /2 (i=1,...,n-1,gdzie n jest liczbą wyrazów ciągu). Narysuj schemat blokowy dla tego algorytmu.Napisz i uruchom program realizujący ten algorytm oraz dodatkowo podający wartość najmniejszego elementu dla zakresu wskazanego przez użytkownika i zamieniający wartość tego elementu na wartość wskazaną przez użytkownika. Program ma umożliwiać a) automatyczne wypisanie ciągu o podanych właściwościach, b) wygenerowanie ciągu liczb losowych z zadanego zakresu c) wpisanie elementów ciągu z klawiatury .Pogrupuj części programu w funkcje.

 
#include<iostream>
#include<conio.h>
#include<cmath>
#include<ctime>
#include<cstdlib>
using namespace std;
const int N=10000;//stałe
int sprawdzenie()
{int i,n,a[N],spr=0;//zmienne
    for(i=1;i<=n;i++)//pętla sprawdzająca 
    {
                     if(a[i]>=a[i-1]*2){cout<<a[i]<<endl; spr=spr+1;}
                   else{cout<<i<<"-ty wyraz nie spelnia zalozen"<<endl;}
    }
    if(spr==n){cout<<"ciag spelnia warunek"<<endl;}
    else{cout<<"ciag nie spelnia warunku"<<endl;}
 }
int wyszukaj()
{int a[N],i,n,mini,pozycja;
	mini =a[1] ;// zaczynamy porownywanie od pierwszego (zerowego) elementu tablicy
	pozycja = 1;
	for (i=1;i<=n;i++)
	{     if (mini>a[i]) 
		   {pozycja = i;
		    mini = a[i];
		    cout<<mini<<"mini"<<endl;
		   cout<<"Próba pętli"<<endl;
		}
	}
    
}
int dodatek()
{int i,n,a[N],decyzja,pozycja;
cout<<"Czy chcesz zmienic najmniejsza wartosc elementu w zakresie (0-tak,1=nie)?";
cin>>decyzja;
if(decyzja==0)
              {cout<<"Na jaka wartosc chcesz go zmienic?";
              cin>>a[pozycja];
             }
     
}
 
int autom()//ciąg o podanych właściwościach
{int i,n,a[N],min;

cout<<"Wybrales automatyczne wypisanie:\n ilo wyrazowy ciag chcesz?"<<endl;
cin>>n;

           for( int i=1; i<=n; i++) 
             { a[i]=(a[i-1]*2)+rand()%9+1;}//instrukcja pętli która wypełnia tablice losowymi liczbami
                
}
int wlasny()//możliwość własnego ciągu
{int i,n,a[N];
    cout<<"Ilo elementowy chcesz wpisac ciag?";
    cin>>n;
    for(i=1;i<=n;i++)//rozpoczynamy od i = 1 ,bo nie ma wzoru ogólnego
    {
                                    cout<<"Podaj "<<i<< "-ty wyraz";
                                    cin>>a[i];
                                    }
}

int los()
{
int n,a[N],min,max;
cout<<"Ile elementow wylosowac : "<<endl;
cin>>n;
cout<<"Z zakresu od :";
cin>>min;
cout<<"do";
cin>>max;
srand(time(0));//potrzebna zmienna
                           for( int i=1; i<=n; i++)
                            {
                                a[i]=min+rand()%(max-min+1);//moduł losowania
                                 cout<<a[i]<<endl;
                                 }
}

int main()
{
    int wybor=0;//wyzerowana zmienna do sekwencji switch case
cout<<"Menu\n 1.Automatyczne wypisanie ciagu o zadanych wlasciwosciach\n 2.Wpisanie wlasnego ciagu\n 3.Losowy ciag liczb\n";
cin>>wybor;
switch (wybor){
       case 1 : autom(); sprawdzenie(); break;
       case 2 : wlasny(); wyszukaj(); dodatek(); sprawdzenie(); break; 
       default: los(); wyszukaj(); dodatek(); sprawdzenie();  break;
}
 getch();
}