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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как заменить объект List одного класса объектом другого? http://www.cyberforum.ru/cpp-beginners/thread528041.html
к примеру дано нам 1 объект класса Book , я хочу его вставить в класс Table вместо удаленного объекта данного класса....как мне поступить? class Book { list <LegOfBooks> listBook; list...
C++ Подключение PI Привет всем, уже не хватает злости от этого С языка... не могу никак подцепить PI, везде где можно пишут что нужно подцепить math.h и там M_PI, и все равно ничего не находит... MS Visual C++... http://www.cyberforum.ru/cpp-beginners/thread528037.html
C++ Клиент-серверное приложение
Здравствуйте! Возможно, я задаю вопрос не в том разделе, но специализированного по виртуальным машинам не нашёл. Есть сервер, написанный на C++ и клиент. Всё прекрасно работает на локальной...
Работа со структурами в Visual C++ C++
Всем доброго времени суток! Возникли небольшие трудности в работе со структурами. Буду весьма благодарна знатокам в этом деле. Задание выглядит таким образом: Информация о компьютере включает...
C++ Вычитание столбцов динамической матрицы http://www.cyberforum.ru/cpp-beginners/thread528016.html
Дана прямоугольная матрица В размером N×M. Составить программу, которая преобразует матрицу следующим образом: поэлементно вычитает первый столбец из всех столбцов, кроме первого. #include...
C++ Создать файл, что вмещает известия о результатах спорт.соревнований Создать файл, что вмещает известия о результатах спорт.соревнований. Данные должны быть представлены в виде следующей структуры: - разновидночть соревнований; - название и номер комманды; -... подробнее

Показать сообщение отдельно
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
26.03.2012, 00:43
Цитата Сообщение от 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");
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru