Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Ilya111
0 / 0 / 1
Регистрация: 14.03.2016
Сообщений: 64
1

Удалить из массива отрицательные элементы

05.09.2016, 11:54. Просмотров 844. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста, сломал голову, надо удалить из массива все отрицательные элементы, использовать всего один цикл,
второй массив не использовать, размер соответственно может может меняться.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2016, 11:54
Ответы с готовыми решениями:

Удалить отрицательные элементы массива
Дан массив, найти максимальный, минимальный элементы и их индексы. Удалить отрицательные элементы...

Удалить отрицательные элементы массива. Программа почему-то только частично работает
Надо удалить все отрицательные элементы, расположенные до первого минимального. У меня почему-то...

Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы
Написать программу , которая вводит с клавиатуры массив из N вещественных чисел , создает два новых...

Удалить отрицательные элементы
Дана последовательность из n целых элементов. Удалить из нее все отрицательные элементы , затем...

Удалить из файла отрицательные элементы
Дан файл целых чисел.Удалить из него отрицательные элементы собственно делаю 2мя...

2
nimazzzy
Заблокирован
05.09.2016, 12:01 2
Если грубо, идем по массиву пока не встретим отрицательный элемент. Встретили. Теперь у нас смещение 1, на текущее место кладем элементы, которые на 1 впереди текущего. То есть, место отрицательного i-го, ставим i+1. И так дальше. Встретили новый отрицательный. Смещение теперь будет 2. И так далее с различными вариациями, пока не дойдем до конца массива нашими запросами со смещением. Конец сгенерированного массива будет в i, который последний раз заместили.
0
MansMI
1451 / 1160 / 550
Регистрация: 08.01.2012
Сообщений: 4,509
05.09.2016, 12:17 3
Лучший ответ Сообщение было отмечено Ilya111 как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void print(int *p,int n)
{
    int i;
    for(i=0; i<n; i++) printf("%d ",p[i]);
    printf("\n");
}
void main(int argc,char* argv[])
{   
    int i,sz,n,*p;
 
    printf("size: ");
    scanf("%d",&sz);
    p=(int*)malloc(sz*sizeof(int));
    srand((unsigned)time(0));
    for(i=0; i<sz; i++) p[i]=rand()%11-5;
    print(p,sz);
    n=0;
    for(i=0; i<sz; i++)//рабочий цикл
        if(p[i]>=0) p[n++]=p[i];
    print(p,n);
    free(p);
    system("pause");
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2016, 12:17

Удалить из однонаправленного списка отрицательные элементы
Создать список из случайных положительных и отрицательных целых чисел (от –10 до 10) и удалить из...

Заменить отрицательные нечетные элементы массива на наименьший элемент массива
Заменить отрицательные нечетные элементы массива на наименьший элемент массива #include...

Удалить все строки и столбцы, на пересечении которых находятся отрицательные элементы
задача - удалить все строки и столбцы на пересечении которых находятся отрицательные элементы ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru