[решено]упорядочивание Элементов Массива

  • Автор темы Whatka
  • Дата начала
Статус
Закрыто для дальнейших ответов.
W

Whatka

#1
Дан A=(ai)массив из n элементов(n<=10) и число b.
Переставить числа в массиве таким образом,
чтобы сначала шли элементы,меньшие или равные b,
а лишь затем большие b.



Помогите, пожалуста незнаю причины появления нуля (между числами<=b и большими) при выводе результата на экран.
Всем ответившим заранее спасибо.







#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
setlocale(LC_ALL,".1251");
int b,i,h=0,n,o,k;
cout<<"Введите число b:";
cin>>b;
cout<<endl;
do
{
cout<<"Введите колличество элементов массива(не больше 10):";
cin>>n;
cout<<endl;
}
while((n>10)||(n<0));
o=n;
int*a=new int[n]; //Задание динамического массива в который записываем значения вводимые с клавиатуры.
int *q=new int[n]; //Задание второго динамического массива.
for(k=0;k<n;k++) //Обнуление всех элементов второго массива.
q[k]=0;

for (i=0;i<n;i++)
{
cout<<"Введите элемент массива:";
cin>>a;
}
for(k=0;k<n;k++) //Присваевает второму массиву элементы первого.
{
if(a[k]<=b)
{
q[h]=a[k];
h++;
}
else
{
q[o]=a[k];
o--;
}

}
cout<<"Элементы отсортированого массива: ";
for(k=0;k<=n;k++)
{
cout<<q[k]<<" ";
}
cout<<endl;

return 0;
}
 
R

rrrFer

#2
Код:
for(k=0;k<=n;k++)
замени <= на <

Добавлено:
Переставить числа в массиве таким образом,
переставлять надо в начальном массиве, заводить еще один массив нельзя, походу
 
W

Whatka

#3
Код:
for(k=0;k<=n;k++)
замени <= на <
Добавлено:
переставлять надо в начальном массиве, заводить еще один массив нельзя, походу

нет так не правильно
тогда лишний 0 появляется вместо первого элемента большего b


и к добавленному:можно главное чтобы был динамический массив с правильно упорядоченными элементами
 
Статус
Закрыто для дальнейших ответов.