Сформировать два массива из элементов исходного - 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, что означает успешное выполнение. Этот код можно использовать для разделения положительных и отрицательных чисел в массиве.