To czego potrzebujesz aby rozwiązać to zadanie, jest użycie dynamicznych tablic, których rozmiar może być ustalony już po uruchomieniu programu ( dynamicznie ). Możesz do tego celu użyć operatora new i pamiętać o późniejszym zwolnieniu pamięci ( delete ), lub też użyć tablicy dynamicznej z biblioteki STL - std::vector.
Poniżej przykład:
#include <iostream>
#include <vector>
using namespace std;
int is_prime( int number )
{
if( number <= 1 ) return false;
for( int i {2} ; i<number ; ++i ) if( number%i == 0 ) return false;
return true;
}
int find_index_of_lowest_prime_number( const vector<int>& data )
{
int minimum_prime {1000};
int result {-1};
for( size_t index {0} ; index<data.size() ; ++index )
{
if( is_prime(data[index]) && data[index]<minimum_prime )
{
minimum_prime = data[index];
result = index;
}
}
return result;
}
int main()
{
vector<int> data {6,24,10,18,11,34,222,998};
cout << find_index_of_lowest_prime_number(data) << endl;
}