Форум программистов, компьютерный форум CyberForum.ru

Вывод на экран элементов массивов, которые являются простыми числами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
studeNTiSHE
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 4
25.12.2010, 02:23     Вывод на экран элементов массивов, которые являются простыми числами #1
Здравствуйте! Пишу сюда в последней надежде на помощь! Нужно сдать две лабы последние, а как их делать, совсем не знай... Пробовал по аналогии делать, получалась чушь.
Вот они:
1) Написать программу, которая считывает массив натуральных чисел из файла, имя которого вводится с клавиатуры, и выводит на экран те элементы, которые являются простыми числами.

2) Написать программу, которая формирует очередь целых чисел, вводимых с клавиатуры, и выводит элементы очереди на экран. Найти в этой очереди максимальный элемент и перенести его в начало очереди. Вывести полученную очередь на экран.

С++ только начал самостоятельно изучать, так как в институте непонятно объясняют, но до этих тем ещё не дошёл, поэтому и обратился к вам! Допуск к зачёту нужен все-таки...

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2010, 02:23     Вывод на экран элементов массивов, которые являются простыми числами
Посмотрите здесь:

Вычислить сумму элементов, которые являются удвоенными нечетными числами C++
Вычислить сумму элементов, которые являются удвоенными нечетными числами C++
C++ Используя функции сформировать одномерный массив и отсортировать по возрастанию только те элементы массива, которые являются простыми числами
Найти сумму тех элементов массива, которые являются простыми числами C++
Вычислить сумму тех членов последовательности, которые являются простыми числами C++
C++ Найти все натуральные числа меньше N, которые одновременно являются числами Фибоначчи и простыми числами.
C++ Вычислить сумму элементов массива, которые являются четными числами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
25.12.2010, 05:07     Вывод на экран элементов массивов, которые являются простыми числами #2
-------

Добавлено через 28 минут
1.
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
42
43
#include<iostream>
#include<string>
#include<conio.h>
#include<fstream>
using namespace std;
 
int main()
{
    char ch[100];
    int n[100];
    int pros[100];
    int c;
    int max=0;
    cout<<"Enter file path \n";
    cin>>ch;
    ifstream ifs(ch);
    int cou=0;
    while(ifs>>c){
        n[cou]=c;
    if(c>max)max=c;
        cou++;
    }
    ifs.close();
    int cou1=0;
    for(int i=0;i<cou;i++){
        if(n[i]==2){
            pros[cou1]=n[i];
            cou1++;
            continue;
        }
        for(int j=2;j<n[i];j++){
            if(n[i]%j==0)break;
            if(j==n[i]-1){
                pros[cou1]=n[i];
                cou1++;
            }
        }
    }
        //cout<<"max "<<max<<endl;
        for(int i=0;i<cou1;i++)
        cout<<pros[i]<<" ";
    getch();
}
studeNTiSHE
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 4
25.12.2010, 12:23  [ТС]     Вывод на экран элементов массивов, которые являются простыми числами #3
igorrr37, Огромное спасибо! ) Одним долгом меньше! Компилятор ругался немного, но все нормально, работает!
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
25.12.2010, 14:33     Вывод на экран элементов массивов, которые являются простыми числами #4
Цитата Сообщение от studeNTiSHE Посмотреть сообщение
Компилятор ругался немного
чего это он?
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
42
#include<iostream>
#include<string>
#include<queue>
#include<conio.h>
#include<fstream>
using namespace std;
 
int main()
{
    queue<int> q;
    int n=0, am=0, max=0;
    cout<<"Vvedite chislo elementov ocheredi \n";
    cin>>am;
    cout<<"Vvedite elementi \n";
    while(cin>>n){
        q.push(n);
        if(q.size()==am)break;
    }
    cout<<"Sozdana ochered: \n";
    for(int i=0;i<q.size();i++){
        if(q.front()>max)max=q.front();
        cout<<q.front()<<" ";
        q.push(q.front());
        q.pop();
    }
    for(int i=0;i<q.size();i++){
        if(q.front()==max){
            cout<<"\nMaximalnii pervii element: \n";
            for(int i=0;i<q.size();i++){
                cout<<q.front()<<" ";
                q.push(q.front());
                q.pop();
            }
            break;
        }
        else{
            q.push(q.front());
            q.pop();
        }
    }
    getch();
}
studeNTiSHE
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 4
25.12.2010, 17:57  [ТС]     Вывод на экран элементов массивов, которые являются простыми числами #5
igorrr37, И на эту компилятор ругается. ( Хотя может я что то не то делаю... Пишет, что:
d:\dust\81\81.cpp(26) : error C2374: 'i' : redefinition; multiple initialization
d:\dust\ïðîãðàìì\81\81.cpp(20) : see declaration of 'i'

и ссылается на эту вот строчку в обоих случаях:
for(int i=0;i<q.size();i++)

Компилю через Microsoft Visual C++ 6.0. В чём может быть проблема?
dihlofos
Бродяга
 Аватар для dihlofos
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
25.12.2010, 18:00     Вывод на экран элементов массивов, которые являются простыми числами #6
studeNTiSHE, объявите i отдельно до циклов, например тут:
C++
1
int n=0, am=0, max=0, i;
а в циклах пишите просто:
C++
1
for(i=0;i<q.size();i++)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2010, 10:00     Вывод на экран элементов массивов, которые являются простыми числами
Еще ссылки по теме:

Вычислить индексы и минимальное значение только тех сумм элементов массива, которые являются простыми числами. C++
Вычислить сумму элементов массива, которые являются четными числами C++
Найти количество тех элементов массива, которые не являются простыми числами C++
В одномерном массиве посчитать сумму элементов, номера которых являются простыми числами C++
C++ В заданном интервале указать все числа, которые одновременно являются простыми и числами Фибоначчи

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

Или воспользуйтесь поиском по форуму:
studeNTiSHE
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 4
27.12.2010, 10:00  [ТС]     Вывод на экран элементов массивов, которые являются простыми числами #7
dihlofos, Спасибо! ) Помогло! Теперь я вообще без долгов! ) Осталось зачётную программу написать и вообще всё отлично будет!
Всех с наступающим и огромное спасибо за помощь! :-)

Добавлено через 18 часов 39 минут
Оказывается это ещё не всё! Если не сложно, взгляните:
1. Написать программу заполнения одномерного массива случайными числами из заданного диапазона. Из полученного массива все положительные числа занести во второй массив, а все отрицательные-в третий. Каждый из полученных массивов упорядочить по возрастанию. Определить во втором масиве количество элементов являющихся степенью 2. Второй и третий массивы записать каждый в отдельный файл.

Я в примерах лабораторных работ нашёл как заполнить одномерный массив случайными числами из заданного диапазона, но дальше тёмный лес, глухие сосны...
Я бы и сам попробовал сделать, но скорость моего обучения намного ниже, чем скорость поступающих лаб.. ((( Рад буду любой помощи!

Добавлено через 20 часов 48 минут
Друзья, уже нашёл программу. На всякий случай выложу здесь.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include "stdlib.h";
#include <stdio.h>
#include <iostream>
#include "assert.h"
#include <fstream>
 
using namespace std;
 
int Random(int vMIn, int vMax)
{
   
    return rand() % (vMax - vMIn) + vMIn;
 
}
 
int* sort(int *Array,int len)
{
    int i,j,low;
    for (int t = 0; t <=100; t++)
    {
        for (i = 0; i < len - 1; i ++)
        {
            low = i;
            for (j = i + 1; j < len; j++)
            {
                    if (Array [low] > Array [j])
                        {
                            int temp;
                            temp = Array [low];
                            Array [low] = Array [j];
                            Array [j] = temp;
                        }
            }
        }
    }
    return Array;
}
bool is_power(unsigned a, unsigned b)
{
    assert(a > 1);
    while (a <= b)
    {
            unsigned p = a;
            do
                {
                        unsigned p2 = p * p;
                        if (p2 > b)
                        break;
                        p = p2;
                } 
                while (true); 
                if (b % p != 0)
                break;
                b /= p;
    }
    return b == 1;
}
bool repeat_is_power(int number, int max)
{
 
    if(max<2)
    return false;
    for(int i=2; i<max; i++)
    {
        if(is_power(i,number))
        {
            if(i!=number)
            return true;
        }
    }
    return false;
}
int main()
{
 
    int i,x=0,z=0,min,max,intArray_1[20],intArray_2[20],intArray_3[20];
    char str[100]="";
    cout << "Vvedite min znachenie" << endl;
    cin >> min;
    cout << endl << "Vvedite max znachenie" << endl;
    cin >> max;
    cout << endl << "Massiv_1:" << endl;
    for(i=0; i<20; i++)
    {
        intArray_1[i]=Random(min,max);
        cout << intArray_1[i] << endl; 
    }
    cout << endl;
    for(i=0; i<20; i++)
    {
        if(intArray_1[i]>=0)
        {
            intArray_2[x]=intArray_1[i];
            x++;
        }
        else
        {
            intArray_3[z]=intArray_1[i];
            z++;
        }
    }
    cout << "Massiv 2" << endl;
    int* sortered_2=sort(&intArray_2[0],x);
    for(i=0; i<x; i++)
    {
        if(repeat_is_power(sortered_2[i],sortered_2[x-1]))
        cout << sortered_2[i] << "- yes, stepen 2" << endl;
        else
        cout << sortered_2[i] << "- no, stepen 2" << endl;
    }
    cout << "Massiv 3" << endl;
    int* sortered_3=sort(&intArray_3[0],z);
    for(i=0; i<z; i++)
    {
        cout << sortered_3[i] << endl;
    }
    cout << "Zapisan v Massiv_2.txt and Massiv_3.txt..." << endl;
    FILE * fo_2; 
    fo_2 = fopen("Massiv_2.txt","wt");
    for(i=0; i<x; i++)
    {
        fprintf( fo_2, "%d\n", sortered_2[i] );
 
    }
    fclose(fo_2);
    FILE * fo_3; 
    fo_3 = fopen("Massiv_3.txt","wt");
    for(i=0; i<z; i++)
    {
        fprintf( fo_3, "%d\n", sortered_3[i] );
    }
    fclose(fo_3);
    cin >> min;
    return 0;
}
Ещё раз спасибо всем! :-)
Yandex
Объявления
27.12.2010, 10:00     Вывод на экран элементов массивов, которые являются простыми числами
Ответ Создать тему
Опции темы

Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru