Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 9

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

31.05.2015, 11:02. Показов 2247. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В массиве целых положительных чисел после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число.

Зараннее спасибо.Я чайник если можно то решение задачи в "лоб".

Добавлено через 31 минуту
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
#include<iostream>
using namespace std;
void main()
{
    int x[5] = { 121, 44, 33, 15, 5 }, i, y[5];
int a, b, c, f;
for (i = 0; i < 5; i++)
{   cout << x[i] << " "; 
cout << endl;
}
for (i = 0; i < 5; i++)
{
    c = x[i];
    b = x[i] % 10;
    c = c / 10;
    f = 1;
    for (c != 0)
    {
        a = c % 10;
        if (a != b)
            f = 0;
        c = c / 10;
    }
    if (f==1)
 
}
 
    for (i = 0; i < 5; i++)
        cout << c << " ";
    system("pause");
}
Помогите я Чайник
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2015, 11:02
Ответы с готовыми решениями:

В массиве после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число
Задача из раздела - Регулярные типы данных. В массиве целых положительных чисел после каждого числа, состоящего из одинаковых цифр,...

После каждого элемента массива состоящего из одинаковых цифр вставить заданное число
Дан массив положительных чисел а1,а2,а3…аN . Вставить в него после каждого числа, состоящего из одинаковых циф #include...

Вставить после каждого положительного числа в одномерном массиве число 0
Вставить после каждого положительного числа в одномерном массиве число 0

15
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 11:26
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
int main(){ 
    int N=5;
    int *a = new int[N];
    for (int i = 0; i < N; i++)
        cin >> a[i];
    int f = 1;
    for (int i = 0; i < N; i++){
        int t = a[i];
        int x = t % 10; t /= 10;
        while (t){
            if (t % 10 != x){
                f = 0; break;
            }
            x = t % 10; t /= 10;
        }
        if (f){
            N++;
            for (int j = N-1; j > i+1; j--){
                a[j] = a[j - 1];
            }
            a[i + 1] = a[i];
            i++;
        }
        f = 1;
    }
    for (int i = 0; i < N; i++)cout << a[i] << " ";
    return 0;
}
Добавлено через 1 минуту
и да такая тема уже была,с точно таким же кодом как у вас ,неужели сложно туда заглянуть
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
31.05.2015, 11:49
нельзя так. Утечка.

на UB похоже
Dimension,

vector, realloc или new int[N*2]
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 11:50
Цитата Сообщение от daslex Посмотреть сообщение
нельзя так. Утечка.
чего утечка ?норм вроде все
0
31.05.2015, 11:53

Не по теме:

Ну по идее норм, но споры тут на форуме были. Типа надо ли delete перед выходом из программы. (там где new, разумеется)
По логике надо, хотя менеджеры памяти и могут сами этим заниматься.
По стандарту - однозначно надо.

А на UB потому что выход за пределы массива.

0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 9
31.05.2015, 11:57  [ТС]
Я чайник если можно то решение задачи в "лоб" !
я не понял ничего из того что ты написал,ты можешь написать через void main()?
а не через int main() мы же ничего не возвращаем через return();
и я не понял для чего нужно break;
и как в условие if может быть только одно значение не сравнивая его с другим ?
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 12:02

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
надо ли delete перед
ну это да ,согласен



Добавлено через 3 минуты
Цитата Сообщение от Шапеев Дмитрий Посмотреть сообщение
решение задачи в "лоб"
это и так в лоб,если нашли число в которым цифры одинаковые ,то увеличим размер массива для нового числа ,переместим все элементы которые находятся справа от числа с одинаковыми цифрами вправо на еденицу,так у нас найдется пустое местечко под новое число ,вставим его в это место ,увеличим i на единицу ,что бы не проверять число которое мы только что вставили
Цитата Сообщение от Шапеев Дмитрий Посмотреть сообщение
а не через int main() мы же ничего не возвращаем через return();
какая разница ,я ноль возвращаю )
Цитата Сообщение от Шапеев Дмитрий Посмотреть сообщение
и я не понял для чего нужно break;
если в числе хоть какие то цифры отличаются то не имеет смысла проверять его дальше ,можно перейти к другому числу
0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 9
31.05.2015, 12:05  [ТС]
как в условие if может быть только одно значение не сравнивая его с другим ?
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 12:05
Цитата Сообщение от Шапеев Дмитрий Посмотреть сообщение
и как в условие if может быть только одно значение не сравнивая его с другим ?
if проверяет истина или нет ,1-истина 0-не истина ,а f у нас может быть либо 1 либо 0 if(f) одно и тоже что и if(f==1)
0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 9
31.05.2015, 12:09  [ТС]
а это t /= 10; одно и тоже t=t/10;

Добавлено через 1 минуту
и цикл с одни условие while (t) как так ?
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 12:11
Цитата Сообщение от Шапеев Дмитрий Посмотреть сообщение
а это t /= 10; одно и тоже t=t/10;
да
Цитата Сообщение от Шапеев Дмитрий Посмотреть сообщение
и цикл с одни условие while (t) как так ?
while работает пока истина ,мы же делим t на 10 ,в конце концов t будет равен 0 ,а это по логике ложь ,тогда while прекратит свою работу
0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 9
31.05.2015, 12:23  [ТС]
int *a = new int[N]; что это ?

Добавлено через 6 минут
int *a = new int[N]; что это ?
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 12:28
динамический массив ,почитайте в инете про массивы
0
31.05.2015, 14:09

Не по теме:

Dimension, Похоже Вам нравится, что предлагаемые вами решения упадут когда не надо и Вы решили не обращать внимания на то, о чем я сказал. Данное решение неправильно, потому что упадет.

Проверьте сами ваш код на большом массиве, например в 10.000 элементов. Первоначально заполнив его случайно.

0
31.05.2015, 14:26

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Dimension, Похоже Вам нравитс
вообще-то я с вами согласился ,я мог бы тупо сделать размер в два раза больше или использовать другой массив,но захотелось без нужды не тратить память

0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
31.05.2015, 15:18
Пофиг на минус, лишь бы плохие примеры не научили людей дурному.
Этот пример периодически будет попадать на глаза других людей, умеющих пользоваться поиском.
Вот их-то и можно случайно научить дурному. Это нехорошо.
Поэтому я настаивал на правильном примере.

Не по теме:

И я не экстрасенс, я видел, что согласие было для delete, а не для всего выссказывания



Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main(){
 
    const int N=20; //N должно быть обязательно в 2 раза больше чем обрабатываемый массив
    int count_arr=10; //Действительное число элементов в массиве
 
    int Arr[N]={-98,887,0,77,778,777,23,-23,-111,-8};  //Должно быть count_arr элементов, если меньше, то дозаполнится нулями
    int y1,y2;  //Цифры из числа для сравнения
    int temp;   //Число из массива
 
    for (int i=0;i<count_arr;i++) {  //Обход массива
        temp=fabs(Arr[i]);
        if (temp>=10){
            y1=temp%10;
            while (temp){
                y2=temp%10;
                if (y1-y2) break;   //Если цикл прервется раньше времени, temp не будет нулем
                temp/=10;
            }
        }
 
        if (!temp || fabs(Arr[i])<10) {         //Вставка элемента в массив если число из одинаковых цифер
                count_arr++;
                for (int j = count_arr-1; j > i+1; j--){  //Значения копируются от конца к началу,
                    Arr[j] = Arr[j - 1];                  //Полуается нечто вроде сдвига блока вправо для освоблждения ячейки массива для вставки в него копии числа
            }
                Arr[i + 1] = Arr[i];        //Вставка копии числа в нужную ячейку.
                i++;
        };
    }
 
    for (int i=0;i<count_arr;i++) cout<<Arr[i]<<"  ";  //Вывод массива на экран
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2015, 15:18
Помогаю со студенческими работами здесь

В массиве вставить после каждого второго элемента минимальное непростое число
Задан массив Y(k) целых чисел. Если он упорядочен, оставить его без изменения. Если массив не упорядоченный, то вставить после каждого ...

Вставить в линейном массиве число a после каждого из элементов, в которых есть цифра 5
Задача: Дан целочисленный линейный массив. Вставить в него число a после каждого из элементов, в которых есть цифра 5. Необходимо сделать...

Массив. Вставить число 5 после каждого четного числа
Вот наработок. Выдает ошибку: Индекс находится вне границ массива. var x:array of integer; i,j,n:integer; begin write('Ведите...

После каждого элемента с четным числом вставить элемент, содержащий сумму цифр числа
Сформировать список из N целочисленных случайных элементов (N- вводится пользователем ,значения элементов выбирать из диапазона от 0 до 99...

В целочисленном массиве после каждого четного числа вставить максимальный элемент массива
В целочисленном массиве X(N) после каждого четного числа вставить максимальный элемент массива. Найти среднее арифметическое элементов...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru