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

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

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

Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде - C++

26.02.2013, 06:35. Просмотров 401. Ответов 1
Метки нет (Все метки)

Удалить из числа все повторяющиеся цифры кроме первого вхождения.

Например: на входе: 112, на выходе: 12.
В моем случаи: на входе: 112, на выходе: 12-86841313513.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<stdio.h> 
#include<iostream>
#include<math.h>
#include<locale.h>
using namespace std;
 
void main()
{
    int num=0, ch=0;
    cout<<"Vvedite proizvol'noe chislo\n";
    scanf("%d",&num);
    int n=num;
 
    while(num!=0)
    {
        num/=10;
        ch++;
    }
    int *str=new int[ch];
    int *arr=new int[ch];
    for (int i=ch-1;i>=0;i--)
    {
 
        str[i]=n%10;
        n/=10;
    }
    for (int i = 0; i < ch; i++)
    {
        int temp = str[i];// запомним i-ый элемент
        int j =i-1;//будем идти начиная с i-1 элемента 
        while(j >= 0 && str[j] > temp)
            // пока не достигли начала массива 
            // или не нашли элемент больше i-1-го
            // который храниться в переменной temp
        {
            str[j + 1] = str[j];
            //проталкиваем элемент вверх
            j--;
        }
        str[j + 1] = temp;
        // возвращаем i-1 элемент 
    }
    arr[0]=str[0];
    for (int i=1; i<ch;i++)
    {
        for(int j=1; i<ch;i++)
        {
            if(arr[j-1]!=str[i])
            {
                arr[j]=str[i];
                j++;
            }
 
        } 
    }
    for(int i=0; i<ch;i++)
    {
        cout<<arr[i];
 
    }
 
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2013, 06:35     Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде
Посмотрите здесь:

C++ Дан одномерный массив, элементы которого - целые числа. Удалите из него все повторяющиеся элементы, оставив только их первые вхождения.
Заменить в последовательности символов после первого вхождения знака ‘+’ все цифры на символ – C++
C++ Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы.
C++ Обработка строки: удалить из числа все повторяющиеся цифры кроме первого вхождения
C++ Обработка строки: удалить из числа все повторяющиеся цифры кроме первого вхождения
Удалить из строки все символы кроме букв и цифр; заменить цифры на '**' C++
Удалить из слова все повторяющиеся буквы, оставив их первые вхождения C++
Удалить из массива повторяющиеся элементы, оставив только их первые вхождения C++
C++ Одномерные массивы, удалить все повторяющиеся элементы, оставив только первые вхождения
C++ Удалить из массива все числа, у которых все цифры, встречающиеся в их записи, одинаковы
Удалить из массива повторяющиеся элементы, оставив только их первые вхождения C++
C++ В десятичной записи числа удалить цифры повторяющиеся нечетное количество раз

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
477 / 294 / 91
Регистрация: 18.02.2013
Сообщений: 684
26.02.2013, 11:11     Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде #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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include<stdio.h> 
#include<iostream>
#include<math.h>
#include<locale.h>
using namespace std;
 
void main()
{
    int num=0, ch=0;
    cout<<"Vvedite proizvol'noe chislo\n";
    scanf("%d",&num);
    int n=num;
    int i,k=0,m=0,j;
 
    while(num!=0)
    {
        num/=10;
        ch++;
    }
    int *str=new int[ch];
    int *arr=new int[ch];
    for ( i=ch-1;i>=0;i--)
    {
 
        str[i]=n%10;
        n/=10;
    }
 
    for ( i = 0; i < ch; i++)
    cout<<str[i]<<" ";
 
    for ( i = 0; i < ch; i++)
    {   
        for( j=i;j<ch-1;j++)
        
            if(str[i]==str[j+1])
            {
            
                for (k=j+1;k<ch;k++)
                {str[k]=str[k+1];}ch--;
            }   
            
    
        
    }
    
        cout<<endl;
    for( i=0; i<ch-1;i++)
    {
        cout<<str[i];
 
    }
 
    system("pause");
}
Yandex
Объявления
26.02.2013, 11:11     Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде
Ответ Создать тему
Опции темы

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