Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Sacredlife
0 / 0 / 1
Регистрация: 23.03.2016
Сообщений: 137
#1

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++

23.06.2016, 17:59. Просмотров 722. Ответов 6
Метки нет (Все метки)

Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами. Выведите массив на экран в строки по 10 элементов в каждой ,оформите генерацию и вывод массива с помощью функции
ребята помогите плз

http://www.cyberforum.ru/cpp-beginners/thread1955613.html

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 17:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнить массив первыми ста простыми числами, и вывести массив на экран (C++):

Заполнить массив десятью первыми простыми числами
Заполнить массив десятью первыми простыми числами

Заполнить массив первыми N положительными нечетными числами
Добрый вечер!Интересует вопрос как сделать так чтобы пользователь вводил целое...

Заполнить массив первыми 20 числами делящимся на 13 или 17
заполнить массив первыми 20 числами делящимся на 13 или 17, находящимся в...

Функция: заполнить вектор простыми числами и вывести их на экран
Задача: Написать функцию, которая заполняет вектор простыми числами и выводит...

Заполнить массив n*m простыми числами
Здрасьте! Помогите, пожалуйста, с решением задачи :impossible: "Двумерный...

6
lawr
372 / 266 / 478
Регистрация: 09.05.2014
Сообщений: 769
23.06.2016, 18:21 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
void Generic (int *A, int n=100){
    A[0]=2;
    for (int i=1, num=3; i<100; num++)
        for (int j=0; j<i; j++){
            if (num%A[j]==0)
                break;
            if (j==i-1)
                A[i++]=num;
            }
}
void Show (int *A, int n=100){
    for (int i=0; i<n; i++)
        std::cout<<A[i]<<' ';
}
int main(){
    int *Prime= new int [100];
    Generic(Prime);
    Show (Prime);
}
Добавлено через 7 минут
завтыкал про вывод по 10 элементов в строке. в функции вывода в цыкл добавьте условие
C++
1
if ((i+1)%10==0) std::cout<<std::endl;
1
nstwf
88 / 78 / 56
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
23.06.2016, 18:52 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace std;
 
void gen(int* arr, int n)
{
    for (int j = 0; j < n; j++)
    {
        arr[j] = j + 1;
    }
}
 
void showarr(int* arr, int n)
{
    int j = 0;
 
    for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
        j++;
        if (j % 10 == 0)
            cout << endl;
    }
 
}
 
void main()
{
    int arr[100];
    gen(arr, 100);
    showarr(arr, 100);
    system("pause");
}
0
Байт
Эксперт C
17760 / 11785 / 2448
Регистрация: 24.12.2010
Сообщений: 23,695
23.06.2016, 19:14 #4
nstwf, задание внимательно прочел? Или ты под простыми числами имеешь в виду нечто другое?
lawr, вопросов нет, Все должно работать. Но я бы этот кусочек оформил так
C++
1
2
3
4
5
for (int j=0; j<i; j++){
   if (num%A[j]==0)
         break;
}
if (j==i) A[i++] = num;
Нет лишних проверок в цикле, да и симпатичней как-то. Впрочем, последнее - дело вкуса
1
nstwf
88 / 78 / 56
Регистрация: 19.02.2016
Сообщений: 336
Завершенные тесты: 1
23.06.2016, 19:19 #5
Цитата Сообщение от Байт Посмотреть сообщение
nstwf, задание внимательно прочел? Или ты под простыми числами имеешь в виду нечто другое?
Упс, видимо - нет, я больше внимания уделил концу задания, а не началу
0
lawr
372 / 266 / 478
Регистрация: 09.05.2014
Сообщений: 769
23.06.2016, 20:08 #6
Байт, про лишние проверки это согласен. но j при завершении цикла выходит из области видимости. я собственно потому эту проверку и внутрь цикла засунул- не скумекал что можно его просто объявить раньше...
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.06.2016, 20:49 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <iomanip>
#include <vector>
#include <cmath>
using namespace std;
 
bool f_isntSimple(unsigned& number)
{
    for (auto i(2u), res(static_cast<decltype(i)>(sqrt(number)));
    i <= res; ++i)
        if (!(number % i))
            return ++number, true;
    return false;
}
 
void f_generate(vector<unsigned>& vec)
{
    auto number(2u);
 
    for (auto& i : vec)
    {
        while (auto flag = f_isntSimple(number));
        i = number++;
    }
}
 
void f_show(const vector<unsigned>& vec)
{
    for (decltype(vec.size()) i(0), size(vec.size()); i < size; ++i)
        cout << setw(4) << vec[i] << ((i + 1) % 10 ? "" : "\n");
}
 
int main()
{
    vector<unsigned> numbers(100);
    f_generate(numbers);
    f_show(numbers);
    cout << endl;
    system("pause");
    return 0;
}
0
23.06.2016, 20:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2016, 20:49
Привет! Вот еще темы с решениями:

Заполнить массив из двадцати элементов первыми натуральными пятизначными числами
Заполнить массив из двадцати элементов первыми натуральными пятизначными...

Заполнить массив случайными простыми числами
Помогите, пожалуйста. Не могу до конца разобраться с заданием. Оно звучит...

Заполнить массив простыми числами по возрастанию
Нужно заполнить массив из n элементов простыми числами по возрастанию ...

Двумерный массив заполнить числами и вывести на экран
Двумерный массив заполнить числами и вывести на экран.Поменять строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru