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

количество одинаковых элементов массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Rentik
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 12
12.11.2010, 19:04     количество одинаковых элементов массива #1
Помогите пожалуйста написать программу, которая бы считывала 4 числа из файла, считала количество одинаковых элементов массива и записывала бы это количество в другой файл. И если не сложно объяснить принцип работы алгоритма. Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.11.2010, 19:29     количество одинаковых элементов массива #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
#include <iostream>
#include <fstream>
 
int main ()
{
    std::ifstream ifs("1.txt");
    const int n = 4;
    int m[n], cnt = 0;
    
    for(int i = 0; i < 4; i++)
    {
            ifs >> m[i];
            std::cout << m[i] << ' ';
    }
    ifs.close();
    
    for(int i = 0; i < 4; i++)
    {
        for(int j  =0; j < i; j++)
        {
            if(m[i] == m[j])
            {
                cnt++;
            }
        }
    }
    
    std::ofstream ofs("2.txt");
    ofs << cnt+1;
}
Rentik
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 12
12.11.2010, 19:57  [ТС]     количество одинаковых элементов массива #3
Спасибо большое!!!=)))

Добавлено через 3 минуты
Только если например ввести все 4 числа например "16", то результат 7, что делать?

Добавлено через 6 минут
А вот всё разобрался)) Надо писать не
C++
1
ofs << cnt+1;
а
C++
1
ofs << cnt;
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.11.2010, 19:57     количество одинаковых элементов массива #4
Ну и результат будет 6,а должно 4,или я ошыбаюсь ?
archideus
 Аватар для archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
12.11.2010, 20:04     количество одинаковых элементов массива #5
Цитата Сообщение от Rentik Посмотреть сообщение
Спасибо большое!!!=)))

Добавлено через 3 минуты
Только если например ввести все 4 числа например "16", то результат 7, что делать?

Добавлено через 6 минут
А вот всё разобрался)) Надо писать не
C++
1
ofs << cnt+1;
а
C++
1
ofs << cnt;
В етой проге число в файле 2 всегда будет 7 если ввести 4 одинаковіх числа

Добавлено через 4 минуты
А так при вводе 4 одинакових чисел результат будет всегда 6
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.11.2010, 20:06     количество одинаковых элементов массива #6
Цитата Сообщение от archideus Посмотреть сообщение
А так при вводе 4 одинакових чисел результат будет всегда 6
Нет,если записать 19 строку таким образом
C++
1
for(int j = 0; j < i-1; j++)
archideus
 Аватар для archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
12.11.2010, 20:15     количество одинаковых элементов массива #7
Может тебе в файл надо записать сколько чисел в масиве встречаютса больше одного раза?
Притом если ти первий раз в цикле сравнивал первую цифру и она совпала с другими то их уже ненадо будет сравнивать.

Добавлено через 1 минуту
Цитата Сообщение от asics Посмотреть сообщение
Нет,если записать 19 строку таким образом
C++
1
for(int j = 0; j < i-1; j++)
И что введи 4 одинаковихчисла = результат всегда 3

Добавлено через 4 минуты
Цитата Сообщение от asics Посмотреть сообщение
for(int i = 0; i < 4; i++)
* * {
* * * * for(int j *=0; j < i; j++)
* * * * {
* * * * * * if(m[i] == m[j])
* * * * * * {
* * * * * * * * cnt++;
* * * * * * }
* * * * }
* * }
етот цикл сравнивает первий елемент с самим собой и со всеми остальними
потом второй со всеми включая себя И.Т.Д.

Добавлено через 2 минуты
Ти наверно неправильно сформулировал задачу

Вопрос Какой ответ должен бить на числа 12 13 12 13
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.11.2010, 20:18     количество одинаковых элементов массива #8
Если чесно,то я на самом деле не доконца понял условие задачи,з этого и такой не радужный результат
archideus
 Аватар для archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
12.11.2010, 20:41     количество одинаковых элементов массива #9
Цитата Сообщение от asics Посмотреть сообщение
Если чесно,то я на самом деле не доконца понял условие задачи,з этого и такой не радужный результат
Да тут его непоймеш )
Как по мне то самий разумний вопрос бил би найти числа которие повторяютса и подсчитать сколько раз !?
и видавать результат 12 13 12 13 типа 12-2 13-2
Rentik
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 12
12.11.2010, 21:13  [ТС]     количество одинаковых элементов массива #10
Цитата Сообщение от archideus Посмотреть сообщение
Вопрос Какой ответ должен бить на числа 12 13 12 13
ответ должен быть 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
#include <iostream>
#include <fstream>
 
int main ()
{
    std::ifstream ifs("1.txt");
    const int n = 4;
    int m[n], cnt = 0;
    
    for(int i = 0; i < 4; i++)
    {
            ifs >> m[i];
            std::cout << m[i] << ' ';
    }
    ifs.close();
    
    for(int i = 0; i < 4; i++)
    {
        for(int j  =0; j < i; j++)
        {
            if(m[i] == m[j])
            {
                cnt++;
            }
        }
    }
    
    std::ofstream ofs("2.txt");
    // Вот здесь должно быть ofs << cnt; , а не ofs << cnt+1 , как в изначальном коде.
    ofs << cnt;
}
А так всё работает))
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.11.2010, 21:16     количество одинаковых элементов массива #11
Ну наконецто тебя удовлетворил мой быдло-код
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2010, 21:21     количество одинаковых элементов массива
Еще ссылки по теме:

C++ количество четных элементов одномерного массива до числа равному а, Определить количество нечетных элементов двумерного массива
C++ Определить наибольшее количество одинаковых элементов в вещественнозначном массиве a(n)
C++ Найти количество пар одинаковых рядом стоящих элементов массива

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

Или воспользуйтесь поиском по форуму:
Rentik
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 12
12.11.2010, 21:21  [ТС]     количество одинаковых элементов массива #12
Спасибо Большое!))) А код хороший)))
Yandex
Объявления
12.11.2010, 21:21     количество одинаковых элементов массива
Ответ Создать тему
Опции темы

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