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

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

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

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

26.02.2013, 06:35. Просмотров 436. Ответов 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");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2013, 06:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде (C++):

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

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

Удалить из слова все повторяющиеся буквы, оставив их первые вхождения - C++
Условие:Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения: в слове должны остаться только различные буквы. ...

Удалить из очереди все повторяющиеся слова, оставив только их первые вхождения - C++
Создать очередь, содержащую слова. Удалить из очереди все повторяющиеся слова, оставив только их первые вхождения. Например, если...

Удалить из строки все повторяющиеся буквы, оставив только их первые вхождения - C++
2.Даны строки, содержащие латинские буквы. Удалить из строки все повторяю* щиеся буквы, оставив только их первые вхождения.

Одномерные массивы, удалить все повторяющиеся элементы, оставив только первые вхождения - 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");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2013, 11:11
Привет! Вот еще темы с ответами:

Заменить в последовательности символов после первого вхождения знака ‘+’ все цифры на символ – - C++
Заменить в последовательности символов после первого вхождения знака ‘+’ все цифры на символ – .

Удалить со строки все указание символы кроме первого - C++
Дана строка (&quot;This,code,are,working, &quot;), вопрос в том как удалить все комы кроме первой??

В десятичной записи числа удалить цифры повторяющиеся нечетное количество раз - C++
Удаляет в записи числа цифры, повторяющиеся нечетное количество раз, получая новое число; В Си ++ третий день,помогите пожалуйста.

Удалить из строки все символы кроме букв и цифр; заменить цифры на '**' - C++
ввести рядок , удалить в нем все символы кроме букв и цифр, заменить цифры на '**' вивести на екран рядок . через if сравнил масив с...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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