Консультация № 109013
12.11.2007, 09:41
0.00 руб.
0 4 4
Плиз хэлп :)
Данн цельный массив А[10],В [10] и значение P и Q.Каждый массив преобразовать по правилу : если в массиве есть хотябы один отрицательный элемент,то все отрицательные имеющие нечетный номер заменить на значение P (для массива А) и значение Q (для массива B).В противном случае массивы оставить без изменения.

Обсуждение

Неизвестный
12.11.2007, 10:31
общий
это ответ
Здравствуйте, Hikaru!
Смотрите "рабочую часть" в приложение.

Приложение:
int A[10],B[10],P,Q;int flagP=-1, flagQ=-1;for(int i=0;i<10;i++){ if(A[i]<0) { if(flagP>0) A[i]=P; flagP*=-1; } if(B[i]<0) { if(flagQ>0) B[i]=Q; flagQ*=-1; }}
Неизвестный
12.11.2007, 12:13
общий
это ответ
Здравствуйте, Hikaru!
Вот программа!! если я конечно все правильно понял то что вы хотите

Приложение:
#include "iostream.h"//using namespace std;void main(void){ int A[10]={1,-2,3,-4,-5,6,7,8,9,0},B[10]={1,-2,3,-4,-5,6,7,-8,9,0}; int P=10,Q=30; cout<<"Masiv A:\n"; for(int x=0;x<10;x++) { cout<<A[x]<<‘ ‘; } cout<<‘\n‘; cout<<"Masiv B:\n"; for(int x=0;x<10;x++) { cout<<B[x]<<‘ ‘; } cout<<‘\n‘; for(int x=1;x<10;x+=2) { if(A[x]<0) A[x]=P; if(B[x]<0) B[x]=Q; } cout<<"Masiv A posle:\n"; for(int x=0;x<10;x++) { cout<<A[x]<<‘ ‘; } cout<<‘\n‘; cout<<"Masiv B posle:\n"; for(int x=0;x<10;x++) { cout<<B[x]<<‘ ‘; } cout<<‘\n‘;}
Неизвестный
12.11.2007, 21:36
общий
это ответ
Здравствуйте, Hikaru!

Ну я что ли предложу свой вариант...См. приложение...
0 - чётное...

Приложение:
#include<iostream.h>#include<conio.h>void main(){int A[10],B[10];int Q,P;int i,j;clrscr();cout<<"Input elements of array A: \n"; for(i=0;i<10;i++) { cout<<" A["<<i<<"] => "; cin>>A[i]; }cout<<"Input elements of array B: \n"; for(i=0;i<10;i++) { cout<<" B["<<i<<"] => "; cin>>B[i]; }cout<<"Input P = ";cin>>P;cout<<"Input Q = ";cin>>Q; for(i=0;i<10;i++) { if(A[i]<0 && i%2!=0) { A[i]=P; } } for(i=0;i<10;i++) { if(B[i]<0 && i%2!=0) { B[i]=Q; } }cout<<"Result A";for(i=0;i<10;i++) { cout<<" "<<A[i]; }cout<<"\nResult B";for(i=0;i<10;i++) { cout<<" "<<B[i]; }getch();}
Неизвестный
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();}
Форма ответа