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

Обнаружение повторяющихся цифр в массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исправить ошибку в коде http://www.cyberforum.ru/cpp-beginners/thread358832.html
Задача простейшая, но вот реализовать не получается правильно, вот условие : Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется, если сумма покупки больше 500 руб, в 5% — если сумма больше 1000 руб. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом). Вычисление...
C++ Массивы Дан массив из, произвольно набранных, целых чисел. Требуется найти уникальные, т.е. не повторяющиеся числа и вывести их на экран, числа которые повторяются, просто записать в конец отсортированного массива. Так же надо найти индекс элемента, где заканчиваются уникальные элементы. Допустим дан массив: 2 5 4 3 2 2 6 3 5 1 Исходные данные будут: 2 5 4 3 6 1 3 2 2 5 6 - индекс http://www.cyberforum.ru/cpp-beginners/thread358831.html
C++ Класс "Студент" - Как записать ссылку на функцию структуры?
Собственно создаю класс студенты, захотелось мне чего-то впихнуть сюда итератор (свой вариант итератора, если это можно так назвать). Текущий вопрос: как записать ссылку на функцию структуры? Нужно это чтобы в моём итераторе была возможность как в stl писать Iterat.first ? Если точнее то нужно сделать указатель на функцию getFullname() class Students { friend class StudentsIterator;...
Поменять местами 2 половины строки // С++ C++
Всем привет. Visual C++. Задание: На входе строка. Необходимо разделить её на 2 равные части, и поменять их местами. Например "abcdefghijklmnopq" ->"jklmnopqabcdefghi" Вот, что я написал: #include <stdio.h> int main() { int i=0,r=0; char s,k;
C++ Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. http://www.cyberforum.ru/cpp-beginners/thread358801.html
1.Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. 2.Даны три вещественных положительных числа a, b, c. Определите, пройдет ли мяч радиуса а через прямоугольное отверстие размером b*c. Буду очень благодарен
C++ Вычислить значение функции арккосинуса, заданной с помощью ряда Тейлора Вычислить и вывести на экран в виде таблицы значение функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dX с точностью E. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Для вычисления последующего члена ряда использовать рекуррентную формулу. подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
01.10.2011, 03:14     Обнаружение повторяющихся цифр в массиве
Цитата Сообщение от nonamez123 Посмотреть сообщение
Единственная беда-вывести результат уже без повторов)
вот держи новое решение без повторения.
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
#include <stdio.h>
int  cunique(const int* arr, const int size, int* aout, int* eout);
 
int  main(void) {
    const int size = 14;
    int a[size] = { 150, 1, 500, 300, 1, 150, 5000, 300, 1, 300, 5, 1, 1, -7};
    int b[size];
    int c[size];
 
    int bsize = cunique(a, size, b, c);
    for(int i = 0; i < bsize; i++) 
         printf("%4d (%d)\n", b[i], c[i]);
     getchar();
     return 0;
}
 
int  cunique(const int* arr, const int size, int* aout, int* nout) {
   int len = 0, cnt;
   const int* i, *iter; 
   const int* end  = arr + size;
 
   for(iter = arr; iter != end; *iter++) {
        for(cnt = 0, i = arr; i != end; *i++) {
             if(*i == *iter)
                  cnt++;
         }
         for(int i = 0; i < len; i++) {
              if(aout[i] == *iter) {
                     cnt = 0;
                     break;
              }
         }
         if(cnt) {
             aout[len] = *iter;
             nout[len] = cnt;
             len++;
         }
   }
   return len;  // возвращает размер уникальных подсчитанных кол-в элементов
}
 
Текущее время: 07:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru