Консультация № 175660
27.12.2009, 17:07
35.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты!!!
Нужно написать программу, определяющую образуют ли элементы целочисленных массивов A[10] и B[5] неубывающую последовательность. Написать функции:
- Заполнения массива числами в диалоговом режиме.
- Вывода одномерного массива.
- Определения, образуют ли элементы массива неубывающую последовательность.
Выполнить все в консольном приложении Win32.

В приложении текст программы, но без функций, работающей правильно! Ваша задача осуществить решение с помощью функций, ну и описать по возможности решение ... Заранее благодарю.

Приложение:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;

void main ()
{
int A[10];
int B[5];

for (int i=0;i<10;i++)
{
cout<<"\nVvedite ";cout<<i+1;cout<<" element massiva A ";
cin>>A[i];
}

for (int i=0;i<5;i++)
{
cout<<"\nVvedite ";cout<<i+1;cout<<" element massiva B ";
cin>>B[i];
}

cout<<"\nMassiv A:\n";
for (int i=0;i<10;i++)
{
cout<<" "<<A[i];
}
cout<<"\nMassiv B:\n";
for (int i=0;i<5;i++)
{
cout<<" "<<B[i];
}

int u=0,v=0;
for (int i=0;i<9;i++)
{
if (A[i]<A[i+1])
u++;
}
for (int i=1;i<9;i++)
{
if (A[i]<A[i-1])
v++;
}
if (u==0&&v==0)
cout<<"\n\nElementy ravny";
else if (u==0)
cout<<"\n\nMassiv A obrasuet ybivauchuu posledovatelnoct";
else if (v==0)
cout<<"\n\nMassiv A obrasuet ne ybivauchuu posledovatelnoct";
else cout<<"\n\nMassiv A obrasuet prostuy posledovatelnoct";

u=0,v=0;
for (int i=0;i<4;i++)
{
if (B[i]<B[i+1])
u++;
}
for (int i=1;i<5;i++)
{
if (B[i]<B[i-1])
v++;
}
if (u==0&&v==0)
cout<<"\nElementy ravny";
else if (u==0)
cout<<"\nMassiv B obrasuet ybivauchuu posledovatelnoct";
else if (v==0)
cout<<"\nMassiv B obrasuet ne ybivauchuu posledovatelnoct";
else cout<<"\nMassiv B obrasuet prostuy posledovatelnoct";
_getch();

}

Обсуждение

давно
Профессор
230118
3054
27.12.2009, 18:02
общий
это ответ
Здравствуйте, Баженов Павел Андреевич.

Ввод массивов происходит в двух похожих кусках кода. В них отличаются только размер массива, сам массив и имя, которое упоминается в приглашении. Следовательно, нужно написать функцию с 3 параметрами. Так же поступаем и с двумя другими функциями. В результате программа сокращается примерно в 2 раза.

Приложение:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;

void array_input(int*array, int size, char* name)
{
for (int i=0;i<size;i++)
{
cout<<"\nVvedite ";cout<<i+1;cout<<" element massiva " << name<<" ";
cin>>array[i];
}

}

void array_output(int*array, int size, char* name)
{
cout<<"\nMassiv "<<name<<":\n";
for (int i=0;i<size;i++)
{
cout<<" "<<array[i];
}
cout<<endl;
}

void array_analyze(int*array, int size, char* name)
{
int u=0,v=0;
for (int i=0;i<size;i++)
{
if (array[i]<array[i+1])
u++;
}
for (int i=1;i<size;i++)
{
if (array[i]<array[i-1])
v++;
}
if (u==0&&v==0)
cout<<"\n\nElementy ravny";
else if (u==0)
cout<<"\n\nMassiv "<<name <<" obrasuet ne vozrastauchuu posledovatelnoct";
else if (v==0)
cout<<"\n\nMassiv "<<name <<" obrasuet ne ybivauchuu posledovatelnoct";
else cout<<"\n\nMassiv "<<name <<" obrasuet prostuy posledovatelnoct";
}
void main ()
{
int A[10];
int B[5];

array_input(A,10,"A");
array_input(B,5,"B");
array_output(A,10,"A");
array_output(B,5,"B");

array_analyze(A,10,"A");
array_analyze(B,5,"B");
_getch();

}
5
Благодарю!
Форма ответа