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

Подскажите Задача (Массивы) - C++

Восстановить пароль Регистрация
 
Admitriy
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 7
25.11.2013, 22:16     Подскажите Задача (Массивы) #1
Задать массив из 50 целых четырёхзначных чисел с помощью датчика случайных чисел. Вывести на экран повторяющиеся элементы их индексы и число их повторов. На экран вывести как исходный массив, так и результаты обработки массива :
Элемент: 57 >> Индексы: 8,19,38 >> Число повторов: 3
Элемент: 12 >> Индексы: 12, 41 >> Число повторов: 2

Не знаю как сделать так что бы элементы не повторялись и прога была похожа на образец...

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
#include "stdafx.h"
#include <time.h>
#include "stdio.h"
#include "windows.h"
#include <math.h>
#include "conio.h"
#include <iostream>
using namespace std; 
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int N=50;
    int dig[N], col=10; 
    int i;
    srand(time(0));
    for (i=0;i<N;i++)
    {
        dig[i] = rand()%100;    
        if ((i+1)%col)
        cout<<dig[i]<<"\t";
        else 
            cout<<dig[i]<<"\n";
    }
    cout<<endl;
    int Usl[N];
    int Mass[N];
    int n = 0;
    int e = 0;
    for (int i=0; i<N; i++)
    {
        for( int j=0; j<N; j++)
        {
            if(dig[j]==dig[i])
            {
                n++;
                Mass[i] = n;
                
            }       
        }
        n=0;
        
    }
    for (int i=0; i<N; i++)
    {       
        if(Mass[i]>1)
        {           
            cout << "\n Element[" << i+1 << "] = " << dig[i] << " >>Number of repetition= " << Mass[i] << endl;      
            
        }
        
    }
    
    
    getch();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 22:16     Подскажите Задача (Массивы)
Посмотрите здесь:

Массивы,подскажите,если не трудно C++
задача на массивы. C++
задача на массивы C++
Задача на массивы C++
задача на массивы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
25.11.2013, 23:25     Подскажите Задача (Массивы) #2
Admitriy, я так понимаю надо вывести повторяющиеся значения, количество повторений и индексы элементов==повторяющемуся значению. Правильно? На словах надо взять первый элемент, сравнить со всеми, запомнить повторения, посчитать число, запомнить индексы, вывести. При следующих проходах нужно не использовать эти индексы. Немного путано, но вроде так.
Admitriy
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 7
26.11.2013, 23:19  [ТС]     Подскажите Задача (Массивы) #3
Надо сделать так что бы повторяющиеся элементы выводились один раз.
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
27.11.2013, 09:24     Подскажите Задача (Массивы) #4
Алгоритм я тебе написала, осталось его с русского на си перевести
Admitriy
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 7
29.11.2013, 22:53  [ТС]     Подскажите Задача (Массивы) #5
Алгоритм то понятен. Только здесь такая ситуация что одно условие противоречит другому - теряются либо индексы либо лишний раз выводятся элементы. Помогите с кодом. =)

Добавлено через 5 часов 16 минут
Помогите плиз! Я пробовал через логику сделать так, что бы значения в массиве стали уникальными, но появилась другая проблема если в массиве встречаются совпавшие элементы повторяющиеся больше 2х раз то всеравно вывод выводятся ненужные элементы...
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
#include "stdafx.h"
#include <time.h>
#include "stdio.h"
#include "windows.h"
#include <math.h>
#include "conio.h"
#include <iostream>
using namespace std; 
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int N=50;
    int dig[N], col=10; 
    int i;
    srand(time(0));
    for (i=0;i<N;i++)
    {
        dig[i] = rand()%100;        
    }
    cout<<endl;
    int Rep[N];
    int count=0;
    int j;
    int n=0;
    for (int i=0; i<N; i++)
    {
        
        for(j=(i+1);j<N;j++)
        {
            if(dig[i]>dig[j])
            {
                double tmp = dig[i];
                dig[i]= dig[j];
                dig[j] = tmp; 
            }           
        }               
    }
    for (i=0;i<N;i++)
    {       
        if ((i+1)%col)
        cout<<dig[i]<<"\t";
        else 
            cout<<dig[i]<<"\n";
    }
    cout<<endl;
    for (int i=0; i<N; i++)
    {
        
        for(j=0;j<N;j++)
        {
            if(dig[i]==dig[j])
            {
                count++;
                Rep[i]=count;               
            }           
        }
        count=0;        
    }
    for (int i=0; i<N; i++)
    {   
        if(Rep[i]>1)
        {           
            cout << "\n Element: " << dig[i] << " Index: ""[" << i+1 << "]"" >> Number of repetition: " << Rep[i] << endl;          
        }       
    }   
    getch();
    return 0;
}
Yandex
Объявления
29.11.2013, 22:53     Подскажите Задача (Массивы)
Ответ Создать тему
Опции темы

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