Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Формирование одномерного массива из другого одномерного массиваСформировать новый массив B, включив в него все положительные элементы исходного массива A, и вывести его на экран. Пусть есть массив A[N]. Надо выбрать из него все положительные элементы и записать их в новый массив, который и будет дальше использоваться. Сначала надо определить, сколько места в памяти надо выделить для массива B. В «худшем» случае все элементы в массиве Aбудут положительными и войдут в массив B, поэтому массив Bдолжен иметь такой же размер, что и массив A. Можно предложить такой способ: просматривать весь массив A, и если для очередного элемента A[i]>0, то его значение копируется в B[i].
Однако в этом случае использовать такой массив Bочень сложно, потому что нужные элементы стоят не подряд. Есть более красивый способ. Объявляем временную переменную-счетчик count, в которой будем хранить количество найденных положительных элементов. Сначала она равна нулю. Если нашли очередной положительный элемент, то ставим его в ячейку B[count] и увеличиваем счетчик. Таким образом, все нужные элементы стоят в начале массива B. #include<stdio.h> const int n=10; void main() { int i, a[n], b[n], count=0; … // здесь нужно ввести массив a for (i=0; i<n; i++) if (a[i]>0) { b[count]=a[i]; count++; } // или b[count++]=a[i]; puts(“Result: “); for (i=0; i<count; i++) printf (“%d\t”, b[i]); }
|