13.11.2007, 01:44
общий
это ответ
Здравствуйте, Hikaru!
В задании условие "если в массиве есть хотябы один отрицательный элемент" избыточно, т.к. нужно заменить именно отрицательные элементы, а значит они уже есть. Поэтому действия сводятся к проверке нечетных элементов массивов на отрицательное значение и замене этих значений. Но необходимо уточнение - что имеется в виду под элементами, имеющими "нечетный номер" - это нечетный индекс или нечетный порядковый номер элемента в массиве - так, как индексы начинаются с 0, то это они не будут совпадать: третий по порядку элемент имеет индекс 2.
В приложении программа, в которой "нечетный номер" считается нечетным индексом. Заменен будет элемент b[3]. Если "нечетный номер" - это порядковый номер элемента, то нужно изменить условие во внешнем if на:
if(i % 2 == 0)
В таком случае будет заменен элемент b[2].
Приложение:
#include <stdio.h>int main(void){int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int b[10] = {0, 1,-2,-3, 4, 5, 6, 7, 8, 9};int i, p = 11, q = 12; for(i = 0; i<10; i++) if(i % 2) { // если i нечетно, то i % 2 (деление по модулю 2) равно 1, т.е. истинно if(a[i] < 0) a[i] = p; // отрицательные значения меняем на заданные if(b[i] < 0) b[i] = q; } for(i = 0; i<10; i++) printf("%3d ", a[i]); printf("\n"); for(i = 0; i<10; i++) printf("%3d ", b[i]); printf("\n"); getchar();}