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

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

Войти
Регистрация
Восстановить пароль
 
DJ_Vadim
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 63
#1

Поиск по массиву - C++

26.03.2012, 00:32. Просмотров 999. Ответов 3
Метки нет (Все метки)

Некоторый массив содержит повторяющиеся элементы, нужно найти количество различных элементов в нём.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<conio.h>
#include<iostream>
 
using namespace std;
int a[] = {2,2,5,7,5,7,9,11,10,2,4,1};
int N,i,j,k=0;
main(){
       N = sizeof(a)/sizeof(a[0]); //узнаём длину массива
       for (i=0;i<N;i++){
           for (j=1;j<N;j++) {
               if (a[i]==a[j]) {//если первая ячейка равна второй то k+1
                  k++;
                  break;
               }
           }
       }
       k=N-k; //от общего кол-ва отнимаем количество одинаковых, должно получится чиcло разных
       cout<<k<<endl;
       system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2012, 00:32     Поиск по массиву
Посмотрите здесь:

Поиск по массиву - C++
Уважаемые господа! Подскажите пожалуйста как осуществить поиск по двум массивам и занести одинаковые элементы в третий массив и...

Поиск по массиву структур - C++
Создать структуру, которая содержит информацию о покупателе (имя, фамилия, адрес в виде вложеной структуры и т. д.) и заполнить её в виде...

Не осуществляется поиск по массиву - C++
Программа не выводит на экран имена и фамилии людей, а просто выдает конечный результат &quot;Lyudi s takiv imenem ne naydeni&quot;. Это значит что k...

Поиск по динамическому массиву - C++
Задан целочисленный двумерный массив a из n строк и m столбцов. Найти номер последнего максимального значения среди нечетных (по значению)...

Дихотомия и интерполяционный поиск по отсортированному массиву - C++
Естьчо в типовых/стандартных библиотеках для C или в STL? Спасибо

Как сделать быстрый поиск по массиву разнотипных данных? - C++
Как сделать быстрый поиск по массиву и разнотипных данных?

Перемещение по массиву - C++
Люди, помогите мне! Написал игрушку в консоле. Нехватает одного, нужно как то реализовать перемещение курсора по матрице 9*9, а также...

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

Вопрос по массиву. - C++
Вобщем вопрос такой, существует массив с данными, который медленно но постоянно растёт. Но нужно чтобы элементы к которым давно не...

фрагмент по массиву - C++
помогите с фрагментом где нужно найти строку содержащую минимальный элемент матрицы(5.3),не пойму как это вывести..


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
26.03.2012, 00:43     Поиск по массиву #2
Цитата Сообщение от DJ_Vadim Посмотреть сообщение
Некоторый массив содержит повторяющиеся элементы, нужно найти количество различных элементов в нём.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<conio.h>
#include<iostream>
 
using namespace std;
int a[] = {2,2,5,7,5,7,9,11,10,2,4,1};
int N,i,j,k=0;
main(){
       N = sizeof(a)/sizeof(a[0]); //узнаём длину массива
       for (i=0;i<N;i++){
           for (j=1;j<N;j++) {
               if (a[i]==a[j]) {//если первая ячейка равна второй то k+1
                  k++;
                  break;
               }
           }
       }
       k=N-k; //от общего кол-ва отнимаем количество одинаковых, должно получится чиcло разных
       cout<<k<<endl;
       system("pause");
}
А вопрос то в чём состоит?
Ну по коду могу сказать, что на Nквадрат/2 оптимальнее считать так
C++
1
2
for (i=0;i<N;i++){
           for (j=i;j<N;j++) {//начало массива уже проверено
Далее
надо считать количество РАЗНЫХ элементов, поэтому предлагаю так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<conio.h>
#include<iostream>
 
using namespace std;
int a[] = {2,2,5,7,5,7,9,11,10,2,4,1};
int N,i,j,k=0;
long result;
main(){
       N = sizeof(a)/sizeof(a[0]); //узнаём длину массива
       result=N*N;
       for (i=0;i<N;i++){
           for (j=i;j<N;j++) {
               if (a[i]==a[j]) {//если первая ячейка равна второй то k+1
                 result=result-2;
               }
           }
       }
       k=N-k; //от общего кол-ва отнимаем количество одинаковых, должно получится чиcло разных
       cout<<k<<endl;
       system("pause");
}
DJ_Vadim
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 63
26.03.2012, 00:52  [ТС]     Поиск по массиву #3
Kuzia domovenok, у меня почему то программа выдаёт 12
я даже не знаю уже как писать...
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
26.03.2012, 00:55     Поиск по массиву #4
ну я на скорую руку писал, ща ещё подправлю
Yandex
Объявления
26.03.2012, 00:55     Поиск по массиву
Ответ Создать тему
Опции темы

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