0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 137
1

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

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

Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами. Выведите массив на экран в строки по 10 элементов в каждой ,оформите генерацию и вывод массива с помощью функции
ребята помогите плз
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2016, 17:59
Ответы с готовыми решениями:

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

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

Заполнить массив n первыми простыми числами (2, 3, 5, 7,.) и вывести его
12. С клавиатуры вводится число n. Заполнить массив n первыми простыми числами (2, 3, 5, 7,...) и...

Заполнить массив тридцатью первыми простыми числами
Заполнить массив тридцатью первыми простыми числами (простым называется натуральное число, большее...

6
385 / 279 / 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
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
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
26975 / 16849 / 3707
Регистрация: 24.12.2010
Сообщений: 37,848
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
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
23.06.2016, 19:19 5
Цитата Сообщение от Байт Посмотреть сообщение
nstwf, задание внимательно прочел? Или ты под простыми числами имеешь в виду нечто другое?
Упс, видимо - нет, я больше внимания уделил концу задания, а не началу
0
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
23.06.2016, 20:08 6
Байт, про лишние проверки это согласен. но j при завершении цикла выходит из области видимости. я собственно потому эту проверку и внутрь цикла засунул- не скумекал что можно его просто объявить раньше...
0
803 / 530 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2016, 20:49
Помогаю со студенческими работами здесь

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

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

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

Заполнить целочисленный массив из 15 элементов первыми простыми числами(делятся только на 1 и на само себя)
Заполнить целочисленный массив из 15 элементов первыми простыми числами(делятся только на 1 и на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru