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

Массивы: поставить в начало последовательности нули, а затем единицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
Джонн
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 13
31.05.2012, 07:59     Массивы: поставить в начало последовательности нули, а затем единицы #1
(Массив)Последовательность a1, a2, …an состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.

(Массив)Дана вещественная матрица А размерности n х m. Определить k — количество "особых" элементов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 07:59     Массивы: поставить в начало последовательности нули, а затем единицы
Посмотрите здесь:

C++ Распознать нули и единицы
C++ Поставить в начало последовательности нули, а затем единицы
Поставить в начало последовательности нули, а затем единицы. C++
Вывести в двоичном виде нули и единицы 01010110001 C++
Переставить элементы массива так, чтобы сначала располагались все нули, затем все двойки и, наконец, все единицы C++
Сформировать массив В, элементами которого являются нули и единицы C++
C++ Последовательность а1, а2,., а n состоит из нулей и единиц. Поставить в начало этой последовательности нул
Заменить в тексте все нули единицами, а единицы нулями C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
31.05.2012, 08:10     Массивы: поставить в начало последовательности нули, а затем единицы #2
(Массив)Последовательность a1, a2, …an состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const int count =5;
 
int trash;
int pArr[count] = { 1,1,1,0,0 };
 
for (int i = 0; i < count; i++)
  for (int j=0; j < count-i-1; j++) 
   if (pArr[j] > pArr[j+1])
    {
     trash = pArr[j]; 
     pArr[j] = pArr[j+1];
     pArr[j+1] = trash;
    }
 
   for(i=0; i<count; i++)
   {
       cout << pArr[i] << " " << endl;
   }
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.05.2012, 08:28     Массивы: поставить в начало последовательности нули, а затем единицы #3
Цитата Сообщение от Джонн Посмотреть сообщение
(Массив)Последовательность a1, a2, …an состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.
Здесь два варианта: сосчитать ноли (или единицы) и заполнить двумя циклами с общим счётчиком, или отсортировать по возрастанию. Сортировку мудрено сделать с линейной зависимостью, а счёт даст именно линейную. Поэтому
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void bisort(int *a; int n)
{
 int count, *p;
 for (count=0, p=a+n-1; p>=a; --p)
 {
  if (*p==1)
  {
   ++count;
  }
 }
 for (p=a+n-1; count>0; --p, --count)
 {
  *p=1;
 }
 for (; p>=a; --p)
 {
  *p=0;
 }
}
. Только если ты даже такой примитив не мог сделать сам давным давно, то он тебе уже не поможет.

Добавлено через 12 минут
Цитата Сообщение от Джонн Посмотреть сообщение
(Массив)Дана вещественная матрица А размерности n х m. Определить k — количество "особых" элементов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца.
Хоть на что то похоже.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int count(float **a, int rows, int collumns)
{
 int r, int collumn, row;
 float s;
 for (r=0, collumn=collumns-1; collumn>=0; --collumn)
 {
  for (s=0.0f, row=rows-1; row>=0; --row)
  {
   s+=a[row][collumn];
  }
  for (row=rows-1; row>=0; --row)
  {
   if (a[row][collumn]>s)
   {
    ++r;
   }
  }
 }
 return r;
}
. Но и то в день зачёта ты должен это уметь, иначе не поможет.
Yandex
Объявления
31.05.2012, 08:28     Массивы: поставить в начало последовательности нули, а затем единицы
Ответ Создать тему
Опции темы

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