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

Дан одномерный массив. Расположить ненулевые элементы по убыванию - C++

Восстановить пароль Регистрация
 
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
02.02.2010, 15:28     Дан одномерный массив. Расположить ненулевые элементы по убыванию #1
Дан одномерный массив. Расположить ненулевые элементы по убыванию. Использовать алгоритм вставки.
Все сложность в том, что-бы нули остались на том же месте, т.е. при сортировки их трогать не надо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2010, 15:28     Дан одномерный массив. Расположить ненулевые элементы по убыванию
Посмотрите здесь:

C++ Дан одномерный массив, элементы которого - целые числа. Удалите из него все повторяющиеся элементы, оставив только их первые вхождения.
C++ переписать в одномерный массив ненулевые элементы и найти наибольшее по модулю
Все ненулевые элементы матрицы D(k,l) расположить в начале массива E(k∙l) и подсчитать из количество C++
Дан массив A[1.50], элементы которого отличны от нуля. Расположить их в таком порядке, чтобы первыми были все положительные элементы, а затем - все о C++
C++ Дан массив целых чисел. Верно ли, что все элементы в нем упорядочены пл убыванию
Ненулевые элементы массива расположить в обратном порядке C++
Дан одномерный массив, найти все отрицательные элементы; элементы, большие данного числа n C++
C++ Все ненулевые элементы матрицы расположить в начале массива и подсчитать их количество

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
02.02.2010, 16:25     Дан одномерный массив. Расположить ненулевые элементы по убыванию #2
ну как вариант: копируешь все неНулевые элементы в другой массив, сортируешь их там, потом копируешь обратно, соответвенно если при копировании обратно в массиве есть нулевой элемент его обходишь\не трогаешь.
ещё вариант: запомнить позиции нулевых элементов, отсортировать массив, вставить нулевые элементы обратно.

Добавлено через 1 минуту
ну это всё если сортировка чужая, а если сам реализуешь, может в самой сортировки способ обхода нулевых элементов поискать
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
02.02.2010, 19:59  [ТС]     Дан одномерный массив. Расположить ненулевые элементы по убыванию #3
Что-то не получается сделать(


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
#include "stdafx.h"
#include <iostream>
#include<windows.h>
#include "conio.h"
#include "time.h"
#include "stdlib.h"
using namespace std;
 
void insertSort( int *a, long size) {
  int x;
  long i, j;
 
  for ( i=0; i < size; i++) {  // цикл проходоа
    x = a[i];   
        
    for ( j=i-1; j>=0 && a[j] > x ; j--)
        a[j+1] = a[j];    // сдвиг О_о
        
    a[j+1] = x;
  }
}
/// Я надеюсь что эта была вставка)) ОМГ
 
 
 
void main() 
{int m[10]={4,0,2,0,78,45},m2[20];
srand(time(NULL));
for(int i=0;i<10;i++)
m[i]=rand()%10;
 
for(int i=0;i<10;i++)
if(m[i]!=0) m2[i]=m[i]; //else m2[i]=0;
 
for(int i=0;i<10;i++)
printf("%4d",m[i]);
 
insertSort(m2,6);
 
for(int i=0;i<10;i++)
{m[i]=m2[i];
 
}
 
 
printf("\n");
for(int i=0;i<10;i++)
printf("%4d",m[i]);
      
 
 
        getch();
}
Добавлено через 1 час 33 минуты
Ребята помогите!
Yandex
Объявления
02.02.2010, 19:59     Дан одномерный массив. Расположить ненулевые элементы по убыванию
Ответ Создать тему
Опции темы

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