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

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

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

Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны - C++

29.11.2013, 16:54. Просмотров 945. Ответов 5
Метки нет (Все метки)

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

Можете подсказать хотя бы алгоритм, я не знаю даже с чего начать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 16:54     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
Посмотрите здесь:

Удалить из массива все элементы,в записи которых все цифры различны. - C++
дана последовательность целых чисел. Удалить из массива все элементы,в записи которых все цифры различны. при решении задачи нужно...

Удалить из массива все элементы,в записи которых все цифры различны. - C++
Ребят,помогите задачу решить: в файле input.txt содержаться сведения о группе студентов в формате: номер группы; запись о каждом...

Удалить из массива элементы, в записи которых все цифры различны - C++
Удалить из массива элементы, в записи которых все цифры различны. (Желательно использовать вектора)

Удалить из массива все числа, у которых все цифры, встречающиеся в их записи, одинаковы - C++
Дан массив целых положительных чисел a1, a2, …аN. Удалить из него все числа, у которых все цифры, встречающиеся в их записи, одинаковы. ...

Удалить из массива все элементы, в записи которых есть заданная цифра - C++
дан одномерный массив целых чисел заполненный случайным образом числами из промежутка удалить из него все элементы в записи которых есть...

Найти все четырехзначные числа, у которых все цифры различны - C++
Найти все четырехзначные числа, у которых все цифры различны.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
371 / 287 / 89
Регистрация: 05.11.2013
Сообщений: 820
Записей в блоге: 5
Завершенные тесты: 1
29.11.2013, 17:17     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны #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
#include <iostream>
 
int main () {
 const int n=10;
 int a[n]={1234, 554, 325, 11, -7, 101, 200, -543, 1111, 202};
 int i,x,digs[5],k,l,j,dif;
 for (i=0; i<n; i++) {
  x=a[i];
  k=0;
  while (x) { digs[k++]=x%10; x/=10; }
  dif=1;
  for (j=0; j<k-1; j++) {
   for (l=j+1; l<k; l++) if (digs[j]==digs[l]) {
    dif=0; break;
   }
   if (!dif) break;
  }
  if (dif) {
   cout << a[i] << " ";
   //вот тут и удаляй, например, не пиши такие числа в новый массив b
   //а которые не отвечают условию - пиши
  }
 }
 cin.get();
 return 0;
}
Тест:

1234 325 -7 -543
Arseny242
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 27
30.11.2013, 14:38  [ТС]     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны #3
Большое спасибо, но вопросы остались. Можете рассказать как работает вот этот цикл?
for (i=0; i<n; i++) {
x=a[i];
k=0;
while (x) { digs[k++]=x%10; x/=10; }
dif=1;
for (j=0; j<k-1; j++) {
for (l=j+1; l<k; l++) if (digs[j]==digs[l]) {
dif=0; break;
}
if (!dif) break;
}
ПерС
371 / 287 / 89
Регистрация: 05.11.2013
Сообщений: 820
Записей в блоге: 5
Завершенные тесты: 1
03.12.2013, 08:21     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны #4
C
1
while (x) { digs[k++]=x%10; x/=10; }
пока в числе x остались цифры,
извлечь в массив цифр очередную цифру (x%10) и выбросить ее из числа (x/=10; деление целых дает в Си целое, например, 325/10=32)

C
1
2
3
4
5
dif=1; //предположили, что все цифры разные
for (j=0; j<k-1; j++) { //каждую цифру в массиве цифр сравниваем с каждой
for (l=j+1; l<k; l++) if (digs[j]==digs[l]) {
dif=0; break; //есть хотя бы раз одинаковые? сбросить флаг dif и выйти
}
Arseny242
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 27
06.12.2013, 23:25  [ТС]     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны #5
А можно ли решить данную задачу другим способом? При помощи сдвига элементов?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 16:29     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
Еще ссылки по теме:

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

Найти все четырехзначные числа, у которых все цифры различны - C++
4)Найти все четырехзначные числа, у которых все цифры различны.

Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы - C++
Удалить из массива, в котором все элементы различны: а) максимальный элемент б) минимальный элемент Добавлено через 4 минуты ...

Удалить из целочисленного массива все максимальные элементы - C++
Удалить из целочисленного массива все максимальные элементы и вставить после последнего удаленного минимальный элемент. Буду очень...

Из целочисленного массива Х все четные элементы записать в массив Y. Удалить в массивах максимальные элементы - C++
Из целочисленного массива Х(N) все четные элементы записать в массив Y(k). Удалить в массивах максимальные элементы. В программе написать...

Удалить все нечетные элементы одномерного массива - C++
1) Удалить все нечетные элементы.


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

Или воспользуйтесь поиском по форуму:
ПерС
371 / 287 / 89
Регистрация: 05.11.2013
Сообщений: 820
Записей в блоге: 5
Завершенные тесты: 1
07.12.2013, 16:29     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны #6
Наверно, можно. Обнаружив подходящий элемент, пакуй массив
C++
1
2
3
4
5
6
7
8
for (j=0; j<k-1; j++) {
   for (l=j+1; l<k; l++) if (digs[j]==digs[l]) {
    dif=0; 
    //здесь
    break;
   }
   if (!dif) break;
  }
Yandex
Объявления
07.12.2013, 16:29     Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
Ответ Создать тему
Опции темы

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