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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Smed
0 / 0 / 0
Регистрация: 14.01.2008
Сообщений: 3
#1

C++, Одномерный массив - разминка для мозгов - C++

14.01.2008, 04:35. Просмотров 1969. Ответов 4
Метки нет (Все метки)

Есть следующая задачка:
"Используйте одномерный массив для решения. Считать 100 чисел, каждый из которых между 1 и 10 включительно(подразумевается использование только int). После считывания каждого числа, вывести его на экран только если он не повторяет уже считанное и показанное число. Используйте наименьший возможный массив для решения."

Есть решение, но не уверен что оно оптимальное... Возможно ли использование массива меньше 10 ??? (естественно не используя 10 int)

Код
int arr[10]={0,0,0,0,0,0,0,0,0,0};
int num=0,i=0,j=0,k=0;
bool key;
  /* считывание 100-та чисел */
 for(i=0;i<100;i++)
 {
  cout<<"Enter number #"<<i+1<<" ";                 
   cin>>num;
   key=false;
   j=0;

   /* проверка былоли уже такое число*/
   while(j<10 && key==false)
       if (arr[j]==num)
           key=true; 
       else
           j++;

   /* если не было */
   if (key==false)
      {
        cout<<num<<endl;
        arr[k]=num;
        k++;
      }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2008, 04:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++, Одномерный массив - разминка для мозгов (C++):

Разминка для мозгов - C++
Необходимо выполнить задания, написав их на языке С: 1) Нарисовать схему алгоритма для программы, которая вводит значения переменных a...

Разминка для профессианалов - C++
Помогите решить детскую задачу Условие: В телефонной книге 100 номеров абонентов. • Определить номер телефона для указанной фамилии....

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Цикл для вывода min чисел в одномерный массив - C++
Цикл для вывода min чисел в одномерный массив

Cформировать одномерный массив Y, для элементов которого выполняется условие - C++
C++ Дан двумерный массив X. Cформировать одномерный массив Y, для элементов которого выполняется условие: 0&lt;cos(Xij)&lt;корня 3/2. ...

Для матрицы А(4 строки ,4 столбца) сформировать одномерный массив B из 4 элементов - C++
Друзья, может у кого есть исходники? на любом языке программирования, буду очень признателен Для матрицы А(4 строки ,4 столбца) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vadim55
0 / 0 / 0
Регистрация: 01.01.2008
Сообщений: 6
14.01.2008, 10:44 #2
Вам понадобится массив всего из одного элемента!
в целом числе 4 байта,32 бита.
придеться работать с битами и >> или <<
подумайте в этом направлении...

для 1 нужен 1 бит, для 2 нужно 2 бита, для 3 нужно 2 бита и.т.д
думайте!
0
Smed
0 / 0 / 0
Регистрация: 14.01.2008
Сообщений: 3
15.01.2008, 04:45  [ТС] #3
В принципе можно вообще без массива написать, но тогда придется вводить довольно таки много не совсем нужных переменных... Вы имеете в виду побитное сравнение ввода? Тогда не совсем понятно что будет хранится в элементе массива...
0
vadim55
0 / 0 / 0
Регистрация: 01.01.2008
Сообщений: 6
15.01.2008, 10:31 #4
я сейчас понял как совсем просто можно решить
1.берем массив из одного элемента
2.если первый раз например число 1
3.устанавливаем первый бит в 1.
если второй раз пришло число 1 проверяем с помощью маски
например if(num & 0x01)
для каждого числа использовать 1 бит(поднят или нет)
и соответствующую маску для проверки

начните писать и я вам помогу
0
Smed
0 / 0 / 0
Регистрация: 14.01.2008
Сообщений: 3
18.01.2008, 07:45  [ТС] #5
Цитата Сообщение от vadim55 Посмотреть сообщение
я сейчас понял как совсем просто можно решить
1.берем массив из одного элемента
2.если первый раз например число 1
3.устанавливаем первый бит в 1.
если второй раз пришло число 1 проверяем с помощью маски
например if(num & 0x01)
для каждого числа использовать 1 бит(поднят или нет)
и соответствующую маску для проверки
начните писать и я вам помогу
красивый алгоритм и что важнее рабочий... спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2008, 07:45
Привет! Вот еще темы с ответами:

Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов - C++
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов.с++

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.01.2008, 07:45
Ответ Создать тему
Опции темы

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