Я получаю нарушение прав доступа при попытке запустить этот код, который находит простые числа в границах.
int main () {
cout << "Program initialized successfully. Please wait for the next message to appear." << endl << endl ;
int Primes[51] ;
int runner = 0 ;
int chaser = 0 ;
int bound = 0 ;
int count = 0 ;
cout << "Please enter the maximum boundary of the calculation : " ;
cin >> bound ;
cout << endl << "The number you've entered, " << bound << ", has been accepted. Please wait for the calculations." << endl ;
if (runner <= bound ) {
Primes[0] = 2;
Primes[1] = 3;
Primes[2] = 5;
Primes[3] = 7;
Primes[4] = 11;
count = 4;
for ( runner = 11 ; runner <= bound ; runner ++ ) {
while ( runner % Primes[chaser] != 0 ) {
for ( chaser = 0 ; Primes[chaser] != 0 ; chaser ++ ) {
if ( runner % Primes[chaser] == 0 ) {
count ++ ;
Primes[count] = runner;
}
}
}
}
int chaser_count;
cout << "Here's the primes computer discovered : " << endl ;
for ( chaser_count = 0 ; chaser_count <= count ; chaser_count ++ ) {
cout << Primes[chaser_count] << endl ;
}
cout << "There is " << count << " primes discovered." << endl ;
}
return 0;
}
Программа работает нормально до строки вычисления: if (runner <= bound) </p>
Я получил нарушение прав доступа.
Я знаю, что такое нарушение прав доступа, но я не знаю, что его вызвало.
edit:
Сейчас я получил 2 ответа, в которых говорится, что у меня может происходить что-то вроде простых чисел [50], но я серьезно сомневаюсь в этом, потому что я получаю ошибку сразу после того, как укажу границу, 12.
Спасибо запарень, который комментирует это.
Я использую Dev-C ++.
Я нашел место, где возникла ошибка.Спасибо всем, кто прокомментировал и ответил за меня.Это логическая ошибка, которую я не нашел, которая приводит к прайму [51].
Спасибо всем за помощь.