Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
studeNTiSHE
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 4
#1

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

25.12.2010, 02:23. Просмотров 1480. Ответов 6
Метки нет (Все метки)

Здравствуйте! Пишу сюда в последней надежде на помощь! Нужно сдать две лабы последние, а как их делать, совсем не знай... Пробовал по аналогии делать, получалась чушь.
Вот они:
1) Написать программу, которая считывает массив натуральных чисел из файла, имя которого вводится с клавиатуры, и выводит на экран те элементы, которые являются простыми числами.

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

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

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

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

Определить количество и сумму элементов массива, которые не являются простыми числами - C++
Пусть задан массив натуральных чисел из n компонент. Определить количество и сумму его компонент,которые не являются простыми числами

Найти сумму тех элементов массива, которые являются простыми числами - C++
Дан массив натуральных чисел А(N), значения элементов которого лежат в диапазоне . Найти сумму тех элементов массива, которые являются...

Вычислить индексы и минимальное значение только тех сумм элементов массива, которые являются простыми числами. - C++
Вычислить индексы и минимальное значение только тех сумм элементов массива (a1 + a2, a2 + a3, ..., an-1 + an), которые являются простыми...

Найти все натуральные числа меньше N, которые одновременно являются числами Фибоначчи и простыми числами. - C++
Дано натуральное число N. Найти все натуральные числа меньше N, которые одновременно являются числами Фибоначчи и простыми числами. ...

Вычислить сумму тех членов последовательности, которые являются простыми числами - C++
Дана последовательность натуральных чисел длины n. Вычислить сумму тех из них, которые – простые числа.

6
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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();
}
1
studeNTiSHE
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 4
25.12.2010, 12:23  [ТС] #3
igorrr37, Огромное спасибо! ) Одним долгом меньше! Компилятор ругался немного, но все нормально, работает!
0
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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();
}
0
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. В чём может быть проблема?
0
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++)
1
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;
}
Ещё раз спасибо всем! :-)
0
27.12.2010, 10:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2010, 10:00
Привет! Вот еще темы с ответами:

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

Используя функции сформировать одномерный массив и отсортировать по возрастанию только те элементы массива, которые являются простыми числами - C++
Помогите закончить две задачи. 1. Используя функции сформировать одномерный массив и отсортировать по возрастанию только те элементы...

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

Вычислить сумму элементов, которые являются удвоенными нечетными числами - C++
помагите найти ошибки заранее благодарен. Задача:Дана прямоугольная матрица Аi,j (i=1,.n; j=1,m). Вычислить сумму элементов, которые...


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

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

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