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

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

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

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

01.12.2013, 22:19. Просмотров 301. Ответов 2
Метки нет (Все метки)

Уважаемые опытные программисты!
Помогите решить мне одну проблему.
Суть её в следующем:
Мне нужно посчитать количество одинаковых символов в массиве и вывести это количество. Я перебрал много способов, но ни один не помог. Вот код программы:
C++ (Qt)
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
#include "stdafx.h"
#include "clocale"
#include "iostream"
 
int main()
{
    setlocale(0,"");
    int n,j,c=0;
    char s[8];
    printf("Введите число: ");
    scanf("%d",&n);
    int i=0,k=0,tmp;
do {
    int x = n % 11;
    n = n / 11;
    char z;
    if( x<10 )
        z = '0' + x;
    else
        z = 'A' + x - 10;
    s[i] = z;
    i++;
 
} while (n>0);
 
for(int j=0; j<i/2; j++)
{
    char c = s[j];
    s[j]= s[i-j-1];
    s[i-j-1] = c;
}
 
    s[i]=0; 
    printf("Число в одиннадцатиричной: %s \n", s);
 
    system("pause");
    return main();
}
Программа выполняет перевод числа в 11-ричную СС
Очень надеюсь на Вашу помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2013, 22:19     Подсчитать одинаковые элементы
Посмотрите здесь:

C++ Одинаковые элементы
C++ Одинаковые элементы в дереве
C++ Одинаковые элементы в массиве.
C++ ОДинаковые элементы в списке
C++ Найти одинаковые 5-тисимвольные слова и подсчитать число их повторений
в массиве одинаковые элементы C++
Подсчитать, сколько раз в строке встречаются одинаковые слова C++
C++ Одинаковые элементы массива
нужно разместить элементы таким образом, чтобы одинаковые элементы располагались на определенном расстоянии C++
C++ Найти в тексте одинаковые слова и подсчитать число их повторений
C++ Подсчитать количество целых чисел в диапазоне от 100 до 999 у которых есть две одинаковые цифры
Подсчитать количество целых чисел в диапазоне от 100 до 999 у которых есть две одинаковые цифры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
01.12.2013, 22:30     Подсчитать одинаковые элементы #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
#include <stdio.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
    char str[256] = "c++ is an object-oriented programming language\0";
 
    printf("%s\n\n",str);
 
    int scstats[256] = { 0 };
    for (int i = 0; str[i] != '\0'; i++)
    {
        int count = 1;
        for (int k = i+1; str[k] != '\0'; k++)
            if (str[k] == str[i]) count++;
 
        if (scstats[str[i]] <= 0)
            scstats[str[i]]+=count;
    }
 
    for (char c = 'a'; c <= 'z'; c++)
        if (scstats[c] > 0) printf("%c - %d\n",c,scstats[c]);
 
    printf("\n");
 
    _getch();
 
    return 0;
}
Миниатюры
Подсчитать одинаковые элементы  
Prikol95
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 12
02.12.2013, 00:34  [ТС]     Подсчитать одинаковые элементы #3
Вроде это не то(((
Нужна работа с готовым результатом(((

Добавлено через 1 час 41 минуту
О, почти сделал.
Теперь как-то надо убрать дубли при выводе, и выводить те числа, которые повторяются более одного раза, вот новый код:
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
41
42
#include "stdafx.h"
#include "clocale"
#include "iostream"
#include "conio.h"
#include <algorithm>
using namespace std;
int main()
{
    setlocale(0,"");
    int n,j,c=0;
    char s[8];
    printf("Введите число: ");
    scanf("%d",&n);
    int i=0,k=0;
do {
    int x = n % 11;
    n = n / 11;
    char z;
    if( x<10 )
        z = '0' + x;
    else
        z = 'A' + x - 10;
    s[i] = z;
    i++;
} while (n>0);
 
for(int j=0; j<i/2; j++)
{
    char c = s[j];
    s[j]= s[i-j-1];
    s[i-j-1] = c;
}
for(int i=0; i<s[i]; i++)
    {
    cout << s[i] << '-' << count(s, s+8,s[i]) << endl;
 
}
s[i]=0;
    printf("Число в 11-ой СС: %s\n",s);
    system("pause");
    return main();
}
Новый код начиная с 33-ей строки
Yandex
Объявления
02.12.2013, 00:34     Подсчитать одинаковые элементы
Ответ Создать тему
Опции темы

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