Обработки Массивов

Тема в разделе "C/C++/C#", создана пользователем ivan1994, 4 ноя 2011.

  1. ivan1994

    ivan1994 Member

    Регистрация:
    31 окт 2011
    Сообщения:
    15
    Симпатии:
    0
    Код ( (Unknown Language)):
    [b]каждый этап обработки массивов (ввод, заполнение, вывод, упорядочение и т.п.) оформите в виде отдельной функции.[/b]

    вот мая задача. я пытался пастаянно какаято хрень ( В общем случае мне так 4 задачи нужно сделать ну я думаю пайму и остальные всётаки сам).. памагите плиз. :) :please: :please: :please: :please:


    Код (C++):
    #include <iostream.h>;
    #include <windows.h>;
    #include <math.h>;

    int main()
    {
    SetConsoleOutputCP(1251);
    int N, buf;

    cout << " Введите количество элементов массива => "; cin >> N;
    int *A = new int[N];
    for (int i = 0; i < N; i++){
    cout << " A[" << i << "] = ";
    cin >> A[i];
    }
    cout << " Исходный массив { ";
    for (int i = 0; i < N; i++){
    cout << A[i] << " ";
    }
    cout << "} " << endl;
    for (int i = 0; i < N; i++){
    for (int k = 0; k < N - 1; k++){
    if (A[k + 1] > A[k]){
    buf = A[k + 1];
    for (int n = 0; n < N; n++){
    A[k + 1] = A[k];
    }
    A[k] = buf;
    }
    }
    }

    cout << " Упорядоченный массив { ";
    for (int i = 0; i < N; i++){
    cout << A[i] << " ";
    }
    delete []A;
    cout << "}" << endl;
    system ( " pause " );
    return 0;
    }
    //---------------------------------------------------------------------------
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    что не получается?
    Нужно описать более конкретно.
     
  3. ivan1994

    ivan1994 Member

    Регистрация:
    31 окт 2011
    Сообщения:
    15
    Симпатии:
    0
    ну надо каждуя часть проги (вывод элементов , ввод и т.д. ) оформить как отдельные функции а патом их вызвать.
     
  4. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    Код (C++):
    /*Честно говоря создать второй динамический массив
    и присваивать ему элементы первого в обратном порядке попроще. Вот прога
    моего варианта:


    #include <iostream>;
    #include <math.h>; 
    using namespace std;


    void pris(int*a,int*b,int n)
    {
    int o=n-1;
    for(int k=0;k<n;k++)
    {
    b[o]=a[k];
    o--;
    }
    }
    void main()
    {
    setlocale(LC_ALL,".1251");
    int n,o;
    do
    {
    cout<<"Введите колличество элементов последовательности(не больше 100):";
    cin>>n;
    cout<<endl;
    }
    while((n>100)||(n<0));
    o=n-1;
    int*a=new int[n];
    int*b=new int[n];
    for (int i=0;i<n;i++)
    {
    cout<<"Введите элемент массива:";
    cin>>a[i];
    }

    pris(a,b,n);

    cout<<"Элементы отсортированой последовательности: ";
    for(int i=0;i<n;i++)
    {
    cout<<b[i]<<"  ";
    }
    cout<<endl;

    }

    Если всё таки твоим способом то код написан далее.
    */



    #include <iostream>;
    #include <math.h>; 

    using namespace std;

    void function(int N,int *A)//твоя функция переворота массива.
    {
    int buf;
    for (int i=0;i<N;i++)
    {
    for (int k=0;k<N-1;k++)
    {
    if (A[k+1]>A[k])
    {
    buf=A[k+1];
    for (int n=0;n<N;n++)
    {
    A[k+1]=A[k];
    }
    A[k]=buf;
    }
    }
    }
    }






    void main()
    {
    setlocale(LC_ALL,".1251");//я немного подправил код подключения рус яз (так проще). И не надо подключать никаких windows.h ))
    int N;

    cout << " Введите количество элементов массива => ";
    cin >> N;
    int *A = new int[N];
    for (int i = 0; i < N; i++)
    {
    cout << " A[" << i << "] = ";
    cin >> A[i];
    }
    cout << " Исходный массив { ";
    for (int i = 0; i < N; i++)
    {
    cout << A[i] << " ";
    }
    cout << "} " << endl; //До сюда ты вводишь элементы массива и т.п.
    function(N,A);//вызов функции переворота массива
    cout << " Упорядоченный массив { ";//Здесь ты их собственно выводишь.
    for (int i = 0; i < N; i++)
    {
    cout << A[i] << " ";
    }
    delete []A;
    cout << "}" << endl;
    system ( " pause " );

    }

    вот всё работает роверял посмотри ещё в моём варианте по другому немного вводятся элементы динамического массива)
     
  5. ivan1994

    ivan1994 Member

    Регистрация:
    31 окт 2011
    Сообщения:
    15
    Симпатии:
    0
    большое спасибо но ты описал тока однуфункцыю по твоему примеру я сделал как надо вот что получилось....
    Код (C++):
    #include <iostream.h>
    #include <math.h>
    #include <windows.h>



    void function(int N,int *A)
    {
    int buf;
    for (int i=0;i<N;i++)
    {
    for (int k=0;k<N-1;k++)
    {
    if (A[k+1]>A[k])
    {
    buf=A[k+1];
    for (int n=0;n<N;n++)
    {
    A[k+1]=A[k];
    }
    A[k]=buf;
    }
    }
    }
    }



    void output (int N,int *A){
    for (int i = 0; i < N; i++)
    {
    cout << A[i] << " ";
    }
    }



    void intput (int N, int *A){
    for (int i = 0; i < N; i++)
    {
    cout << " A[" << i << "] = ";
    cin >> A[i];
    }
    }



    void fill (int N, int *A){
    for (int i = 0; i < N; i++)
    {
    cout << A[i] << " ";
    }
    }



    void main()
    {
    SetConsoleOutputCP(1251);
    int N;
    cout << " Введите количество элементов массива => ";
    cin >> N;
    int *A = new int[N];
    intput (N,A);
    cout << " Исходный массив { ";
    output (N,A);
    cout << "} " << endl;
    function(N,A);//вызов функции переворота массива
    cout << " Упорядоченный массив { ";
    fill (N,A);
    delete []A;
    cout << "}" << endl;
    system ( " pause " );

    }
     
Загрузка...

Поделиться этой страницей