Консультация № 109177
13.11.2007, 09:34
0.00 руб.
0 8 3
Короче, помогите плиз сделать задачу по программированию (С++).
Ток плиз напишите все как для новечка :)))

Вот задача:
Даны целые числа массива А[10],В[10]изначения P и Q.
Каждый массив преобразовать по правилу: компотенты с четными номерами,
предшествующие наибольшему компоненту6 ма6ссива, заменить на значение
R (для массива А) и значение F (для массива В).

Зарание спс:)))
Считать, что в каждом массиве наибольший компонент единственный.

Обсуждение

Неизвестный
13.11.2007, 11:37
общий
Не ошиблись в задании? P и Q, а потом R и F! И в каком С?
Неизвестный
13.11.2007, 11:48
общий
Да сори немного ошибся:(вот:Даны целые числа массива А[10],В[10]изначения R и F.Каждый массив преобразовать по правилу: компотенты с четными номерами, предшествующие наибольшему компоненту массива, заменить на значение R (для массива А) и значение F (для массива В). Считать, что в каждом массиве наибольший компонент единственный.
Неизвестный
13.11.2007, 12:03
общий
это ответ
Здравствуйте, Александер Александров!
Абсолютно все объяснять, наверно, долго и времени нет. Да и учебники есть во всех видах
Начнем так: в приложении код программы, которая пройдет на любом С, поскольку написана на "классическом" С.
Посмотрите. Что не понятно, спрашивайте в минифоруме этого вопросы

Приложение:
#include <stdio.h>int main() { int A[10] = {1,2,3,4,5,6,21,8,9,10}; int B[10] = {1,2,3,40,5,6,7,8,9,10}; int R = -12; int F = -10; int i, max_A, max_B; printf("Исходные массивы\n"); for (i=0; i<10; i++) printf("%4d", A[i]); printf("\n"); for (i=0; i<10; i++) printf("%4d", B[i]); printf("\n"); max_A=0; for (i=1; i<10; i++) if (A[i] > A[max_A]) max_A = i; max_B=0; for (i=0; i<10; i++) if (B[i] > B[max_B]) max_B = i; printf("Измененные массивы\n"); for (i=2; i<=max_A; i=i+2) A[i] = R; for (i=0; i<10; i++) printf("%4d",A[i]); printf("\n"); for (i=2; i<=max_B; i=i+2) B[i] = F; for (i=0; i<10; i++) printf("%4d",B[i]); printf("\n"); return 0;}
Неизвестный
13.11.2007, 12:10
общий
Ну так пример мой понятен? Я, правда, и максимальный заменил, если он четный... Переделать несложно. Например, в строке<font color=red>for (i=2; i <=max_A; i=i+2) A[i] = R;</font>нужно писать <font color=blue>for (i=2; i < max_A ; i=i+2) A[i] = R;</font>
Неизвестный
13.11.2007, 20:36
общий
это ответ
Здравствуйте, Александер Александров!

Держите!...
Структура программы:
1) вводим массив А,В; при вводе сразу ищем максимальную компоненту и её индекс в массиве.
2) Идём по чётным компонентам, которые находятся перед максимальной компонентой и заменям элементы массивов А,В на введенные значения P,Q.
3) Выводится результат.

Успехов!


Приложение:
#include<iostream.h>#include<conio.h>void main(){int A[10],B[10];int P,Q;int Amax,Bmax;int Aind,Bind;clrscr();Amax=Bmax=-32000;Aind=Bind=0;for(int i=0;i<10;i++) { cout<<"A["<<i<<"] = "; cin>>A[i]; if(A[i]>Amax) { Amax=A[i]; Aind=i; } }for(i=0;i<10;i++) { cout<<"B["<<i<<"] = "; cin>>B[i]; if(B[i]>Bmax) { Bmax=B[i]; Bind=i; } }cout<<"Input P = ";cin>>P;for(i=0;i<Aind;i++) { if(i%2==0) { A[i]=P; } }cout<<"Input Q = ";cin>>Q;for(i=0;i<Bind;i++) { if(i%2==0) { B[i]=Q; } }cout<<"Array A: ";for(i=0;i<10;i++) { cout<<A[i]<<" "; }cout<<"\nArray B: ";for(i=0;i<10;i++) { cout<<B[i]<<" "; }}
Неизвестный
13.11.2007, 21:28
общий
Куль)))БОЛЬШОЕ СПАСИБО)))Щя буду пробывать разобраться ;)
Неизвестный
14.11.2007, 07:16
общий
это ответ
Здравствуйте, Александер Александров!

Программа в приложении, но что там у вас вся группа будет сюда ходить домашние задания делать? (Вопросы 109072, 109018, 109013). В последний раз ...


Приложение:
int main(void){int a[10] = {0, 1, 2, 9, 4, 5, 6, 7, 8, 3};int b[10] = {0, 1,-2,-3, 4, 5, 9, 7, 8, 6};int i, am = 0, bm = 0, r = 20, e = 30; // найти индексы максимальных элементов массивов am для массива a, bm для массива b for(i = 0; i<10; i++) { if(a[i] > a[am]) am = i; if(b[i] > b[bm]) bm = i; } // заменить элементы с четными индексами менее am, bm for(i = 0; i < am; i += 2) a[i] = r; for(i = 0; i < bm; i += 2) b[i] = e; // вывести значения массиво на экран 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();}
Неизвестный
14.11.2007, 09:53
общий
Титов Михаил Анатольевич.Ну не вся, знают про сайт ток 4 человека) остальные с нас списывают :))) ещё раз спасибо))))
Форма ответа