Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2014, 17:04   #1
zevs 12
Пользователь
 
Регистрация: 10.10.2014
Сообщений: 25
Подмигивание помогите кому не лень)) вопрос по c++ bilder

есть программа но не знаю как записать код, чтобы после компилирования при нажатии ENTER был выход из программы .

Код:
#pragma argsused
int main()
{
   SetConsoleCP(1251);   //
   SetConsoleOutputCP(1251);      //
        float *X=new float;   //
        int  n,i,k=0, j, preobr;
        float  s=0;
        cout<<"размер массива n =";
        cin>>n;
        X= new float [n];   //
        for (i=0; i<n; i++)
        {
                cout<<"X["<<i<<"]=";
                cin>>X[i];         //???? ???????
        }
        cout<<"Исходный масив"<<endl;
        cout<<endl;
        for (i=0; i<n; i++) cout<<" "<<X[i]; //???? ???????
        for (i=n-1; i>0; i--)
        {
                preobr=X[i];
                if (preobr%2==0)
                {
                        cout<<endl;
                        cout<<"Последний четный элемент = "<<X[i]<<endl;
                        break;
                }
        }
        for (i=0; n>i; i++)
        {
                if  (X[i]<0)
                {
                for  (j=i; j<n; j++)  X[j]=X[j+1];
                i--;
                n=n-1;
                }
        }
        cout<<"после удаления отрицательных элеменов"<<endl;
        for (i=0; i<n; i++) cout<<" "<<X[i];
        for (i=0; i<n; i++){
                if (X[i]>0)  s=s+X[i];
        }
        if (s>0) {
                s=s/n;
                n++;
                X[n-1]=s;
                cout<<endl;
                cout<<"Среднее арифметическое элементов массива = "<<s<<endl;
                cout<<"После включения ср. ариф. в конец массива"<<endl;
                for (i=0; i<n; i++) cout<<" "<<X[i];
       }else cout<<"ср. ариф. элементов массива = 0"<<endl;
       cin>>i;
        return 0;
        
}
//---------------------------------------------------------------------------


вот программа помогите плиззз буду благодарен

Последний раз редактировалось Stilet; 11.10.2014 в 12:46.
zevs 12 вне форума Ответить с цитированием
Старый 10.10.2014, 17:15   #2
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Напиши system ("pause"); перед return 0;
Для этого ну жен #include <process.h>
igoreshka3333 вне форума Ответить с цитированием
Старый 10.10.2014, 17:56   #3
zevs 12
Пользователь
 
Регистрация: 10.10.2014
Сообщений: 25
По умолчанию

спасибо хорошо сейчас попробую))

все равно не срабатывает ( даже незнаю что и делать (

Последний раз редактировалось Stilet; 11.10.2014 в 12:47.
zevs 12 вне форума Ответить с цитированием
Старый 10.10.2014, 18:08   #4
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

А она вообще компилируется?
Где у тебя эти строки?
Код:
#include <iostream>
using namespace std;
Код:
#include <windows.h>
#include <iostream>
#include <process.h>
using namespace std;

int main()
{
    SetConsoleCP(1251); //
    SetConsoleOutputCP(1251); //
    float *X=new float; //
    int n,i,k=0, j, preobr;
    float s=0;
    cout<<"размер массива n =";
    cin>>n;
    X= new float [n]; //
    for (i=0; i<n; i++)
    {
        cout<<"X["<<i<<"]=";
        cin>>X[i]; //???? ???????
    }
    cout<<"Исходный масив"<<endl;
    cout<<endl;
    for (i=0; i<n; i++) cout<<" "<<X[i]; //???? ???????
    for (i=n-1; i>0; i--)
    {
        preobr=X[i];
        if (preobr%2==0)
        {
            cout<<endl;
            cout<<"Последний четный элемент = "<<X[i]<<endl;
            break;
        }
    }
    for (i=0; n>i; i++)
    {
        if (X[i]<0)
        {
            for (j=i; j<n; j++) X[j]=X[j+1];
            i--;
            n=n-1;
        }
    }
    cout<<"после удаления отрицательных элеменов"<<endl;
    for (i=0; i<n; i++) cout<<" "<<X[i];
    for (i=0; i<n; i++){
        if (X[i]>0) s=s+X[i];
    }
    if (s>0) {
        s=s/n;
        n++;
        X[n-1]=s;
        cout<<endl;
        cout<<"Среднее арифметическое элементов массива = "<<s<<endl;
        cout<<"После включения ср. ариф. в конец массива"<<endl;
        for (i=0; i<n; i++) cout<<" "<<X[i];
    }else cout<<"ср. ариф. элементов массива = 0"<<endl;
    cin>>i;
    cout << endl;
    system ("pause");
    return 0;
 }
Так работает!

Последний раз редактировалось Stilet; 11.10.2014 в 12:50.
igoreshka3333 вне форума Ответить с цитированием
Старый 10.10.2014, 18:34   #5
zevs 12
Пользователь
 
Регистрация: 10.10.2014
Сообщений: 25
По умолчанию

Код:
#include <vcl.h>
#include <stdio.h>
#include <windows.h>
#include <iostream.h>
#include <math.h>
#include <process.h>
#pragma hdrstop



/*
3.1 Дан одномерный массив Хк.
 Найти последний среди элементов с четными значениями.
  Все отри-цательные элементы массива удалить.
   В конец массива дописать среднее арифметическое положи-тельных элементов.
*/

//---------------------------------------------------------------------------

#pragma argsused
int main()
{
   SetConsoleCP(1251);   //
   SetConsoleOutputCP(1251);      //
        float *X=new float;   //
        int  n,i,k=0, j, preobr;
        float  s=0;
        cout<<"размер массива n =";
        cin>>n;
        X= new float [n];   //
        for (i=0; i<n; i++)
        {
                cout<<"X["<<i<<"]=";
                cin>>X[i];         //???? ???????
        }
        cout<<"Исходный масив"<<endl;
        cout<<endl;
        for (i=0; i<n; i++) cout<<" "<<X[i]; //???? ???????
        for (i=n-1; i>0; i--)
        {
                preobr=X[i];
                if (preobr%2==0)
                {
                        cout<<endl;
                        cout<<"Последний четный элемент = "<<X[i]<<endl;
                        break;
                }
        }
        for (i=0; n>i; i++)
        {
                if  (X[i]<0)
                {
                for  (j=i; j<n; j++)  X[j]=X[j+1];
                i--;
                n=n-1;
                }
        }
        cout<<"после удаления отрицательных элеменов"<<endl;
        for (i=0; i<n; i++) cout<<" "<<X[i];
        for (i=0; i<n; i++){
                if (X[i]>0)  s=s+X[i];
        }
        if (s>0) {
                s=s/n;
                n++;
                X[n-1]=s;
                cout<<endl;
                cout<<"Среднее арифметическое элементов массива = "<<s<<endl;
                cout<<"После включения ср. ариф. в конец массива"<<endl;
                for (i=0; i<n; i++) cout<<" "<<X[i];
       }else cout<<"ср. ариф. элементов массива = 0"<<endl;
       cin>>i;
       system ("pause");
        return 0;
        
}
//---------------------------------------------------------------------------
вот исходный код как было написано , так запускается и считает но не выходит по нажатию Enter , попробывал твою прогу выдает ошибку((

не компилирует короче , может дело в билдере?

Последний раз редактировалось Stilet; 11.10.2014 в 12:53.
zevs 12 вне форума Ответить с цитированием
Старый 10.10.2014, 19:00   #6
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

У меня builder 6.0. Компилирует без проблем! Именно мой код!
Из какого учебника пример?
igoreshka3333 вне форума Ответить с цитированием
Старый 10.10.2014, 19:22   #7
zevs 12
Пользователь
 
Регистрация: 10.10.2014
Сообщений: 25
По умолчанию

у меня тоже 6.0 не из учебника препод дал)

по другому ни как прописать?

Последний раз редактировалось Stilet; 11.10.2014 в 12:54.
zevs 12 вне форума Ответить с цитированием
Старый 10.10.2014, 19:58   #8
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Ну из того, что я сумел обнаружить: вопрос - зачем тебе вот это уже в конце программы:
Код:
cin >> i
то есть программа просит ввести i, а ты клацаешь ЕНТЕР, потому программа и не выходит!
+ в матчасти ошибка в коде, то есть когда я пытаюсь закрыть консоль - непонятная ошибка происходит.
igoreshka3333 вне форума Ответить с цитированием
Старый 11.10.2014, 02:00   #9
zevs 12
Пользователь
 
Регистрация: 10.10.2014
Сообщений: 25
По умолчанию

хорошо посижу по разбираю может что получится спасибо
zevs 12 вне форума Ответить с цитированием
Старый 11.10.2014, 18:20   #10
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Что ж это за препод задачу такую аТскую задал?
Код:
#include <iostream>
using namespace std;
int lasteval (int[], int);
void negnumb (int[], int&);
void average (int[], int);

int main ()
{
    int n;
    int* X = new int;
    cout << "\nInsert the size of the array: "; cin >> n;
    X = new int[n];
    cout << "\nFill an array: \n";
    for (int i=0; i<n; i++) { cout << "X[" << i+1 << "]= "; cin >> X[i]; }
    int temp = lasteval(X, n);
    cout << "The last element with an even value: " << temp;
    cout << "\nArray without negative values: \n";
    negnumb (X, n);
    cout << "\nArray with the average of the number: \n";
    average (X, n);
    delete[] X;
    cout << endl;
    system ("pause");
}

//-------------------------------------------------------------
int lasteval (int X[], int n)
{
    int last;
    for (int i=0; i<n; i++)
    {
        if (X[i]%2==0 && X[i]>=0) last = X[i];
    }
    return last;
}
//--------------------------------------------------------------
void negnumb (int X[], int& n )
{
    for (int i=0; i<n; i++)
        if (X[i]<0)
        {
            for (int j=i; j<n; j++)
                X[j] = X[j+1];
            i--;
            n--;
        }
    for (int i=0; i<n; i++)
    {
        cout << "X[" << i+1 << "]= " << X[i];
        cout << endl;
    }
}
//--------------------------------------------------------
void average (int X[], int n)
{
    int temp = 0;
    for (int i=0; i<n; i++)
    {
        temp += X[i];
    }
    int aver = temp/n;
    int* X1 = new int[n+1];
    for (int i=0; i<n; i++)
    {
        X1[i] = X[i];
    }
    X1[n] = aver;
    for (int i=0; i<(n+1); i++)
    {
        cout << "X[" << i+1 << "]= " << X1[i];
        cout << endl;
    }
}

Последний раз редактировалось igoreshka3333; 11.10.2014 в 19:07.
igoreshka3333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Беда...кому не лень загляните..... Nikopolzhenya Общие вопросы .NET 1 04.08.2012 21:49
Кому не лень Trofik9 Фриланс 9 20.09.2011 07:08
Помогите с прогой кому не лень DimoniusX Паскаль, Turbo Pascal, PascalABC.NET 2 06.01.2009 21:44
Кому не лень. Roman®© Общие вопросы Delphi 2 21.11.2008 11:29