Задача: удалить из массива все простые числа. Программа начинает ошибаться вот в этом месте. Где ошибка?
for (r=0;r<*n;r++) //прохожу по массиву
{for (del=2;del<=a[r]/2;del++) // ищу простое число
{if (a[r]>=0 && a[r]Юl==0)
cout<
Другие языки программирования и технологии
C++ не работает часть программы
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
bool simple(unsigned);
size_t newsize(unsigned *, size_t);
void show_array(unsigned *, size_t);
void copy_array(unsigned *, unsigned *, size_t);
void simple_delete(unsigned *, size_t, unsigned *, size_t);
int main() {
locale::global(locale(""));
srand(unsigned(time(0)));
cout << "\n Введите размер массива: ";
size_t size;
cin >> size;
if (!size) exit(0);
unsigned * arr = new unsigned [size];
for (size_t n = 0; n < size; n++) arr[n] = 2 + rand() % 96;
cout << "\n Исходный массив: \n\n";
show_array(arr, size);
size_t nsize = newsize(arr, size);
unsigned * temp = new unsigned [size];
copy_array(temp, arr, size);
delete[] arr;
arr = new unsigned [nsize];
simple_delete(arr, nsize, temp, size);
delete[] temp;
temp = NULL;
cout << endl << " Преобразованный массив: \n\n";
show_array(arr, nsize);
delete[] arr;
arr = NULL;
cin.get(); cin.get();
return 0;
}
void simple_delete(unsigned * _array, size_t _nsize, unsigned * _temp, size_t _size) {
size_t m = 0;
for (size_t n = 0; n < _size; n++)
if (simple(_temp[n])) continue;
else _array[m++] = _temp[n];
}
void copy_array(unsigned * _where, unsigned * _whence, size_t _size) {
for (size_t n = 0; n < _size; n++) _where[n] = _whence[n];
}
void show_array(unsigned * _array, size_t _size) {
for (size_t n = 0; n < _size; n++) cout << setw(10) << _array[n] << endl;
}
size_t newsize(unsigned * _array, size_t _size) {
size_t nsz = _size;
for (size_t n = 0; n < _size; n++) if (simple(_array[n])) --nsz;
return nsz;
}
bool simple(unsigned _number) {
for (unsigned n = 2; n <= _number / 2; n++) if (!(_number % n)) return false;
return true;
}
#include <ctime>
#include <iomanip>
using namespace std;
bool simple(unsigned);
size_t newsize(unsigned *, size_t);
void show_array(unsigned *, size_t);
void copy_array(unsigned *, unsigned *, size_t);
void simple_delete(unsigned *, size_t, unsigned *, size_t);
int main() {
locale::global(locale(""));
srand(unsigned(time(0)));
cout << "\n Введите размер массива: ";
size_t size;
cin >> size;
if (!size) exit(0);
unsigned * arr = new unsigned [size];
for (size_t n = 0; n < size; n++) arr[n] = 2 + rand() % 96;
cout << "\n Исходный массив: \n\n";
show_array(arr, size);
size_t nsize = newsize(arr, size);
unsigned * temp = new unsigned [size];
copy_array(temp, arr, size);
delete[] arr;
arr = new unsigned [nsize];
simple_delete(arr, nsize, temp, size);
delete[] temp;
temp = NULL;
cout << endl << " Преобразованный массив: \n\n";
show_array(arr, nsize);
delete[] arr;
arr = NULL;
cin.get(); cin.get();
return 0;
}
void simple_delete(unsigned * _array, size_t _nsize, unsigned * _temp, size_t _size) {
size_t m = 0;
for (size_t n = 0; n < _size; n++)
if (simple(_temp[n])) continue;
else _array[m++] = _temp[n];
}
void copy_array(unsigned * _where, unsigned * _whence, size_t _size) {
for (size_t n = 0; n < _size; n++) _where[n] = _whence[n];
}
void show_array(unsigned * _array, size_t _size) {
for (size_t n = 0; n < _size; n++) cout << setw(10) << _array[n] << endl;
}
size_t newsize(unsigned * _array, size_t _size) {
size_t nsz = _size;
for (size_t n = 0; n < _size; n++) if (simple(_array[n])) --nsz;
return nsz;
}
bool simple(unsigned _number) {
for (unsigned n = 2; n <= _number / 2; n++) if (!(_number % n)) return false;
return true;
}
Вынесите в отдельную процедуру код проверки число на простоту.
И выложите свой код к примеру на пастебин или еще куда, местный редактор сьел половину.
И выложите свой код к примеру на пастебин или еще куда, местный редактор сьел половину.
Похожие вопросы
- C#. Как сделать, чтобы программа проверяла тип введённой переменной?
- C++ не работает программа посмотрите пожалуйста))
- Как правильно создать и использовать radiobutton-ы на win api c++ ?Можно ли из программы узнать версию Windows ?
- Почему при вводе маленьких значений коэффициентов программа на c++ не работает
- c++ не работает программа
- C#, запуск второй копии программы
- C++, цикл for. Написать программу.
- вопрос по C++ как работать с заголовками? компилятор ругается, непойму как связать 3 файла. исходники внутри.
- Как быстро изучить c++? Чтобы быстро писать программы под Windows. Знаю только Pascal.
- c++ цикл: for Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем.