Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2015, 08:40   #1
BERTY123
 
Регистрация: 16.12.2015
Сообщений: 8
Восклицание

Помогите решить ! Пробелы в теме .

В одномерном массиве все отрицательные элементы перемещаются в начало массива а остальные в конец ,с сохранить порядок следования . Доп. массив заводить нельзя.

Язык СИ ,не ++

Не знаю в правильно ли направление иду + надо в СИ ,не в ++
Код:
int i, j, k; 
time_t t; 
srand(time(&t)); 
int array[30]; 
for(i = 0; i < 32; i++) 

cout«(array[i] = rand()%10 - 5)«" "; 
for(i = 0; i < 30; i++) 
{ 
if(0 <= array[(j = i)]) 
{ 
while(0 <= array[j] && j < 30) 
j++; 
if(j < 30) 
{ 
array[j] += array[k]; 
array[k] = array[j] - array[k]; 
array[j] = array[j] - array[k]; 
k++; 
} 
} 
} 
cout«endl; 
cout«"sorted array\n"; 
for(i = 0; i < 30; i++) 
cout«array[i]«" "; 
cout«endl; 
system("pause"); 
return 0; 
}

Последний раз редактировалось Stilet; 16.12.2015 в 13:25.
BERTY123 вне форума Ответить с цитированием
Старый 16.12.2015, 09:00   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

повторять
пока отрицательный элемент и не конец массива - следущий элемент
запомнить ИНДЕКС
пока положительный элемент и не конец массива - следущий элемент
запомнить текущий элемент
сдвинуть все элементы с текущего-1 до ИНДЕКСА
записать сохраненный текущий по ИНДЕКСУ

сойдет?

П.С. Какой cout, если у вас не плюсы?
p51x вне форума Ответить с цитированием
Старый 16.12.2015, 09:02   #3
BERTY123
 
Регистрация: 16.12.2015
Сообщений: 8
По умолчанию

Хорошо бы код ,(я еще выше написал ,но он в ++ и не уверен ,что пишу правильно ) ,что бы я смог увидеть наглядно и разобрать .

Что-то наклипал ,но не работает. Помогите в нормальный рабочий вид сделать.
Код:
#include <stdlib.h> 
#include <time.h>

 
int main()
{
 srand(time(NULL)) 
 const int N=10;
int mass[N];
int m=0;
for(int i=0;i<N;i++)
{
    if(mass[i]<0 && m==i) m++;
    else
    {
          int t=mass[i];
          for(int j=i;i>m;j--)
                   mass[j]=mass[j-1];
          mass[m]=t;
          m=i+1;
     }
}
}

Последний раз редактировалось Stilet; 16.12.2015 в 13:25.
BERTY123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив чисел В[0:N]. Записать подряд в массив А элементы массива В, имеющие четные индексы,(язык си++) yury.zanilov Помощь студентам 9 15.03.2012 21:55
Дан массив из N целых чисел. Получить из него массив чисел по модулю меньших 10 и отсортировать его(язык си++) mitja-zakelidis Помощь студентам 2 15.03.2012 03:10
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02