Консультация № 109072
12.11.2007, 15:32
0.00 руб.
0 4 4
Здраствуйте у меня тут проблема с программой:
Даны целые массивы А[10],И B[10] и значение C,E,D,F
. Каждый массив преобразовать следующим
образом: если элемет массива A[i]>=0, то он
заменяется на значение C,иначе на значение D.
Если элемент массива B[i]>=0, о он заменяется на
значение E, иначе на значение F. Вроде всё нада сделать через функции. Пожалуйсто Help Help Help :)

Обсуждение

Неизвестный
12.11.2007, 18:42
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
Делаем функцию: передаешь в неё массив и два значения, вызываем её для каждого массива. и она все делает.

Приложение:
#include <iostream.h>void func(int *a,int q1,int q2) { for(int i=0;i<10;i++) if(a[i]>=0) a[i]=q1; else a[i]=q2; }void main (void) { int a[10]={1,2-1,-2,-3,-4,4,-3,-2,0},b[10]={1,-2,3,4,5,6,-7,-8,9,0}; int c=1,d=0,e=3,f=4,i; cout<<"Mssive A:"<<endl; for (i=0;i<10;i++) cout<<a[i]<<‘\t‘; cout<<"Mssive B:"<<endl; for (i=0;i<10;i++) cout<<b[i]<<‘\t‘; func(a,c,d); func(b,e,f); cout<<"Mssive A:"<<endl; for (i=0;i<10;i++) cout<<a[i]<<‘\t‘; cout<<"Mssive B:"<<endl; for (i=0;i<10;i++) cout<<b[i]<<‘\t‘;}
Неизвестный
12.11.2007, 22:35
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!

Держите!...Каждое действие в отдельной функции...
Структура программы:
1) вводим массивы
2) распечатываются исходные массивы
3) меняем элементы(C,D,E,F)
4) выводим образовавшиеся массивы


Приложение:
#include<iostream.h>#include<conio.h>void vvod(int a[10]){ cout<<"Input elements of array: \n"; for(int i=0;i<10;i++) { cout<<"["<<i<<"] - "; cin>>a[i]; }}void vyvod(int a[10]){ for(int i=0;i<10;i++) { cout<<a[i]<<" "; }}void zameny(int a[10]){int value1,value2;cout<<"Input value1 = ";cin>>value1;cout<<"Input value2 = ";cin>>value2; for(int i=0;i<10;i++) { if(a[i]>=0) { a[i]=value1; } else { a[i]=value2; } }}void main(){int A[10],B[10];clrscr();cout<<"Input A: ";vvod(A); //Vvodimcout<<"Input B: ";vvod(B);cout<<"Array A: ";vyvod(A);cout<<"\nArray B: "; //Vyvodim ishodnyye massivyvyvod(B);cout<<"\nInput C & D: ";zameny(A);cout<<"Input E & F: ";zameny(B);cout<<"\nResult A: ";vyvod(A);cout<<"\nResult B: ";vyvod(B);getch();}
Неизвестный
13.11.2007, 03:03
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!

Ну через функцию, так через функцию...
Программа в приложении

Приложение:
#include <stdio.h>void convert(int [], int, int, int);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 c = 11, d = 12, e = 13, f = 14, i; convert(a, c, d, 10); for(i = 0; i<10; i++) printf("%3d ", a[i]); printf("\n"); convert(b, e, f, 10); for(i = 0; i<10; i++) printf("%3d ", b[i]); printf("\n"); getchar(); return 0;}// convert: Преобразовать массив m, размером lim: положительные элементы заменить на pos, отрицательные на negvoid convert(int m[], int pos, int neg, int lim){int i; for(i = 0; i < lim; i++) m[i] = (m[i] >= 0) ? pos : neg;}
Неизвестный
13.11.2007, 14:05
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
Сдесь легче без функций. В примере показано для массивов с нулевыми значениями, поэтому, там где отмечено необходимо ввести значения этих массивов и ввести значения CDEF.

Приложение:
#include <vcl.h>#include <stdio.h>#include <conio.h>#pragma hdrstop//---------------------------------------------------------------------------#pragma argsusedint main(int argc, char* argv[]){int A[10]={0}, B[10]={0}, C=1, E=2, D= 3, F=4;// необходимо ввести значения этих массивов и ввести значения CDEFfor (int i = 0; i < 10; i++) { if (A[i]>=0) A[i] = C; else A[i] = D; if (B[i]>=0) B[i] = E; else B[i] = F; printf("A = %d ", A[i]); printf("B = &d\n", B[i]);}getch(); return 0;}
Форма ответа