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

Разные элементы. - C++

Восстановить пароль Регистрация
 
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
26.01.2010, 12:25     Разные элементы. #1
Дан, упорядоченный массив по возрастанию. Найти кол-во различных числе среди элементов массива.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
26.01.2010, 15:38     Разные элементы. #2
Код
for(i=0, k=0; i<N; i++) {
  if (i==0) {
     k++;
     x = m[i];
  }
  else if (x!=m[i]) {
     k++;
     x = m[i];
  }
}
Написал и сразу увидел
Код
for(i=0, k=0; i<N; i++) {
  if (i==0 || x!=m[i]) {
     k++;
     x = m[i];
  }
}
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
26.01.2010, 15:55     Разные элементы. #3
int arr[] = {...};
int i = std::distance(arr, std::unique(arr, arr+sizeof(arr)/sizeof(arr[0])));
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
26.01.2010, 19:12  [ТС]     Разные элементы. #4
Ни один из способов не работают(
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
26.01.2010, 19:18     Разные элементы. #5
Все отлично работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
 
int main()
{
    int arr[] = { 1, 2, 2, 3, 4, 5, 5 };
    int N = sizeof(arr) / sizeof(arr[0]);
    std::cout << "Кол-во разных элементов: "
              << std::distance(arr, std::unique(arr, arr + N))
              << "\n";
    return 0;
}
http://codepad.org/xJUPWrjg
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
26.01.2010, 23:48     Разные элементы. #6
BOR1K,

Ни один из способов не работают(

ах ты врунишка... :lol:
Андрейка
407 / 211 / 22
Регистрация: 25.03.2009
Сообщений: 710
26.01.2010, 23:54     Разные элементы. #7
BOR1K, да полюбому если так вбить
int arr[] = {...};
int i = std::distance(arr, std::unique(arr, arr+sizeof(arr)/sizeof(arr[0])));
в пустой .cpp не заработае =D
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
27.01.2010, 11:33  [ТС]     Разные элементы. #8
А если массив из Char сделать?
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
27.01.2010, 14:32     Разные элементы. #9
BOR1K,

А если массив из Char сделать?

этот код считает для любых простых типов, а с небольшими модификациями - вообще для любых.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2010, 11:40     Разные элементы.
Еще ссылки по теме:

Вывести разные элементы матрицы C++
Разные выводы C++
Разные кнопки C++

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

Или воспользуйтесь поиском по форуму:
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
28.01.2010, 11:40     Разные элементы. #10
а если так,
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#define n 10
int main(void)
{int mas[n]={1,1,2,3,3,4,5,7,7,7};
int i,k=0;
for(i=0;i<n;i++)
{if(mas[i]!=mas[i+1])k++;
if(i==n)break;}
printf("%d ",k);
return 45;
}
Добавлено через 36 секунд
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#define n 10
int main(void)
{int mas[n]={1,1,2,3,3,4,5,7,7,7};
int i,k=0;
for(i=0;i<n;i++)
{if(mas[i]!=mas[i+1])k++;
if(i==n)break;}
printf("%d ",k);
return 45;
}
Yandex
Объявления
28.01.2010, 11:40     Разные элементы.
Ответ Создать тему
Опции темы

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