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

Упорядочить по возрастанию только положительные элементы массива, оставив остальные элементы на своих местах. Напечатать индексы тех элементов массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
DenBaz
Сообщений: n/a
23.12.2011, 18:12     Упорядочить по возрастанию только положительные элементы массива, оставив остальные элементы на своих местах. Напечатать индексы тех элементов массива #1
которые остались на своих местах.

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
//IS-11,Bazarnov Denis,Lab.05,Var.2,04-11-11
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 30
int main()
 {
   int s[N];
   int i=0,j,k,hold,n,g;
   scanf("%i",&s[i]);
   while(i<N && s[i])
    {
      i++;
      printf("s[%i] = ",i);
      scanf("%i",&s[i]);
    }
  puts("Massiv do:");
  puts("---------");
  for(k=0;k<i;k++)
   {
     printf("%4i",s[k]);
   }
  printf("\n");
  for(n=1;n<i;n++)
   for(j=0;j<i-1;j++)
    if(s[j]>s[j+1] && s[j]>0 && s[j+1]>0)
     {
       hold=s[j];
       s[j]=s[j+1];
       s[j+1]=hold;
     }
  printf("Massiv posle:\n");
  puts("---------");
  for(j=0;j<i;j++)
   {
     printf("%4i",s[j]);
   }
  puts("\nOstalis' na svoix mestax elementi:");
  for(j=0;j<i;j++)
   {
     if(s[j]<0)
      {
        printf("%i",j);
      }
   }
  getch();
  return 0;
 }
Вот код программы,только вот массив сортирует так : исходный массив 13 34 -1 1 16 9
Отсортированный массив 13 34 -1 1 9 16.Почему так? как сделать чтобы он отсортировал полностью массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 18:12     Упорядочить по возрастанию только положительные элементы массива, оставив остальные элементы на своих местах. Напечатать индексы тех элементов массива
Посмотрите здесь:

C++ Упорядочить элементы массива по возрастанию модулей элементов
C++ В однородном массиве упорядочить элементы массива по возрастанию модулей элементов
Упорядочить элементы одномерного массива по возрастанию модулей элементов C++
Переписать положительные элементы массива во второй, а остальные - в третий массив C++
C++ Сделать все положительные элементы массива отрицательными, вывести их индексы
C++ Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
Разработать функцию, которая сортирует только положительные элементы массива на своих местах C++
Удалить из массива повторяющиеся элементы, оставив только их первые вхождения C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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