Сформировать два массива из элементов исходного - C (СИ)
Формулировка задачи:
Всем привет. Нужно очень срочно написать программу, никак не могу понять что за чем! Помогите пожалуйста!
Условие: Пусть имеется одномерный массив целых чисел, содержащий отрицательные и положительные значения. Разделить его на два новых таким образом , чтобы в первом оказались значения, большие нуля, а в другом - меньше.
Я попробывал так, ошибок 0 но она не запускается
void main() { int a[20], b[20], c[20], n=0, m=0, i=0; if (a[i]>0) {b[n]=a[i]; n++;} else {c[m]=a[i]; m++;}}
Решение задачи: «Сформировать два массива из элементов исходного»
textual
Листинг программы
int main() { int a[20], b[20], c[20], n=0, m=0, i; for(i=0; i < 20; i++) a[i] = -100 + rand()%200; for(i=0; i<20; i++) { if (a[i]>0) b[n++]=a[i]; else c[m++]=a[i]; } // вывод результата return 0; }
Объяснение кода листинга программы
В этом коде:
- Создаются четыре переменные:
a
,b
,c
,n
иm
, которые инициализируются нулевыми значениями. - Заполняются массивы
a
случайными числами от -100 до 100 с шагом 1. - Происходит два прохода по массиву
a
. - На первом проходе, если элемент массива
a
больше нуля, то он копируется в массивb
и увеличивается счетчикn
. - На втором проходе, если элемент массива
a
меньше или равен нулю, то он копируется в массивc
и увеличивается счетчикm
. - Код возвращает 0, что означает успешное выполнение. Этот код можно использовать для разделения положительных и отрицательных чисел в массиве.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д