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

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

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

Подсказать по коду программы - C++

05.11.2012, 18:10. Просмотров 1326. Ответов 42
Метки нет (Все метки)

Нашел тут на форуме программу, которая почти подходит под мое условие, но в ее коде не совсем понимаю, прошу помочь разобраться. Если кому не сложно, напишите к строчкам комментарии, что они делают, или в другом удобном вам виде.
В частности, не понятно где именно в коде, идет добавление элементов, например я задаю первый, а где задаются последующие. А также, что выполняется в этом куске:
Array + currentSlip, Array + N, Array[currentSlip]);

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
#include <iostream>
#include <algorithm>
 
const int N = 5;
 
int handSet(void)
{
    int a;
    std::cout << "Введите число: ";
    std::cin >> a;
    return a;
}
 
void SetArray(int * Array)
{
     std::generate(Array, Array + N, handSet);
}
 
int MakeCalculations(int * Array)
{
    std::sort(Array, Array + N);
 
    int currentSlip = 0;
    int count_Of_Elements_That_Meets_More_Than_Once = 0;
    while (currentSlip < N)
    {
        int count = std::count(Array + currentSlip, Array + N, Array[currentSlip]);
        if (count > 1)
            ++count_Of_Elements_That_Meets_More_Than_Once;
        currentSlip += count;
    }
    return count_Of_Elements_That_Meets_More_Than_Once;
}
 
void ShowResult(int X)
{
    std::cout << "\n\n" << "Число элементов, встречающихся в последовательности более 1го раза: " <<
        X << "\n\n";
}
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
 
    int Array[N];
    SetArray(Array);
 
    std::cout << "Исходная последовательность: " << '\n';
    std::copy(Array, Array + N, std::ostream_iterator<int>(std::cout, " "));
 
    int count_Of_Elements_That_Meets_More_Than_Once = MakeCalculations(Array);
 
    ShowResult(count_Of_Elements_That_Meets_More_Than_Once);
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 18:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Подсказать по коду программы (C++):

Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль - C++
Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль

Блок-схема по коду программы - C++
Нужно сделать блок схему #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; int x,y; void main() { clrscr(); ...

Составление алгоритма по коду программы - C++
Есть ли тут люди, которые могут помочь в составление алгоритма такой вот программки?: #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Блок схема по коду программы - C++
#include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; float x,d,k; void main() { clrscr(); cout&lt;&lt;&quot;Enter x=&quot;; cin&gt;&gt;x; ...

Построение блок-схем по коду программы - C++
подскажите, пожалуйста, сайт на котором можно построить блок-схему по готовому коду программы

Создать блок-схему по коду программы - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; void set(int** ar, int size1, int size2) { int i, j, t=1;...

42
David Sylva
1292 / 954 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 16:59 #31
Цитата Сообщение от SoSPB Посмотреть сообщение
Срочно над
Что срочно надо?
0
SoSPB
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 21
13.11.2012, 17:07 #32
почему то не отправилось первое сообщение, можно сделать, чтобы такая программа, брала числа из текстового файла? мне нужно по коду, который из моей темы, здесь как я понял его переделывали. Очень надо, можно или нет?
0
David Sylva
1292 / 954 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 17:11 #33
Цитата Сообщение от SoSPB Посмотреть сообщение
почему то не отправилось первое сообщение, можно сделать, чтобы такая программа, брала числа из текстового файла? мне нужно по коду, который из моей темы, здесь как я понял его переделывали. Очень надо, можно или нет?
Напиши полностью своё задание.
0
SoSPB
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 21
13.11.2012, 17:15 #34
Нет задания, мне надо знать(и если понадобится ответить), может или нет, собственно и спрашиваю
0
David Sylva
1292 / 954 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 17:17 #35
конечно можно.
1
Kuzia domovenok
2125 / 1955 / 194
Регистрация: 25.03.2012
Сообщений: 6,802
Записей в блоге: 1
13.11.2012, 17:35 #36
Цитата Сообщение от SoSPB Посмотреть сообщение
Срочно надо ((
А тебе то что надо? ты ж не ТС.
0
Ivan1990
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
13.11.2012, 18:01  [ТС] #37
Как сделать, чтобы она правильно работала? Пробовал с третьей переменной- не получается. Ввожу последовательность из 3 элементов, все единицы - выдает, что больше одного раза встречаются два элемента, а на самом деле один. Мне сказали ,что можно сделать введя еще один массив, чтобы после проверки элементы отидывались в него.
0
David Sylva
1292 / 954 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 18:04 #38
Цитата Сообщение от Ivan1990 Посмотреть сообщение
Как сделать, чтобы она правильно работала?
кто она?
0
Ivan1990
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
13.11.2012, 18:06  [ТС] #39
David Sylva, Программа
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
#include <iostream>
#include <locale>
#include <math.h>
 
using namespace std;
 
int* enter(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
    { 
        cout << "Введите элемент [" << i << "] "; 
        cin >> array1[i]; 
    } 
    return array1;
}   
 
int Count(int* array, int n) 
{ 
    int i, j;
    int count = 0; 
    for ( i = 0; i < n; i++)  
        for ( j = 1+i; j < n; j++)  
            if(array[i] == array[j])
            {
                count++; 
                break;  
                cout << count << endl;
            } 
           return count;
}
 
 
void show(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
        std::cout << array1[i] << " "; 
    cout << endl;
}
 
int main() 
{   
    int n;
    setlocale(0, "rus");
    cout << "n="; 
    cin >> n;
    const int N = 100; 
    int array1[N];  
    enter(array1, n); 
    show(array1, n);  
    cout <<"Число элементов встречающихся больше одного раза  " << Count(array1, n) <<endl;
    system ("Pause");
0
David Sylva
1292 / 954 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 18:22 #40
Всё понял, увидел где ошибка, можно сделать с массивами, но это будет коряво.
0
Ivan1990
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
13.11.2012, 18:25  [ТС] #41
David Sylva, А как тогда делать?
0
David Sylva
1292 / 954 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 18:43 #42
Поправил
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
#include <iostream>
#include <locale>
#include <math.h>
 
using namespace std;
 
int* enter(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
    { 
        cout << "Введите элемент [" << i << "] "; 
        cin >> array1[i]; 
    } 
    return array1;
}   
 
int Count(int* array, int n) 
{ 
    int i, j;
    int count = 0;  
    int c = 0;
    for ( i = 0; i < n; i++) 
    {
        for ( j = 1+i; j < n; j++)  
            if(array[i] == array[j])
                c++;  
        if(c == 1) 
            count++; 
        c = 0; 
    }
           return count;     
}
 
 
void show(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
        std::cout << array1[i] << " "; 
    cout << endl;
}
 
int main() 
{   
    int n;
    setlocale(0, "rus");
    cout << "n="; 
    cin >> n;
    const int N = 100; 
    int array1[N];  
    enter(array1, n); 
    show(array1, n);  
    cout <<"Число элементов встречающихся больше одного раза  " << Count(array1, n) <<endl;
    system ("Pause");  
}
1
Ivan1990
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
13.11.2012, 18:52  [ТС] #43
David Sylva, Спасибо
0
13.11.2012, 18:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 18:52
Привет! Вот еще темы с ответами:

Есть ли программы для построения блок-схем по коду с++? - C++
есть ли программы для построения блок-схем по коду с++?

Посоветуйте программу для составления блок схем по коду программы. - C++
Здравствуйте, подскажите пожалуйста кто работал с такими программами. Я лично пользовался Code Visual to Flowchart (программа хорошая, но...

Где найти несложные программы для windows desktop, с доступом к исходному коду? - C++
Хочу получить опыт, почитав и хотя бы не много поняв достаточно качественные и проффесионально написанные программы. Пусть лучше будет...

Можете подсказать по поводу задачи? - C++
Расчитать сумму членов бесконечного ряда с заданой пользователем точностью E для заданого поьзователем значения х(-1;1) :...


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

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

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