IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Конструктор С++
сообщение
Сообщение #1


Ночной волк
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской

Репутация: -  1  +


 #include <iostream>

class massiv {

public:
int s;

void showall(){
for (int i=0; i<20; i++) cout << " | " << mas[i] << " | ";
cout << endl;
return;
}

int check_this(){
int max=0;
int min=0;
for (int i=1; i<20; i++){
if mas[i]>mas[max] then max=i;
if mas[i]<mas[min] then min=i;
}
if (max=min) return 0;
int check=0;
int d=1;
if (max<min) d=-1;
for (int i=min; i!=max; i=i+d) if mas[i]>0 then check++;
return check;
}

massiv() {
cout << "How many digit in array?" << endl;
cin >> s;
cout << "Input " << s << " digit" << endl;
int *mas = new int[s];
cin >> mas;

}

~massiv();

int main {
massiv buffer;
massiv a[5]; Так вообще можно?
bool flag=false;
while (flag=false) {
flag=true;
for (int i=0; i<4; i++) {
if (a[i].check_this > a[i+1].check_this) {
flag=false;
buffer=a[i];
a[i]=a[i+1];
a[i+1]=buffer; а так?

}
}
}
for (int i=0; i<5; i++) a[i].showall
return 0;
}
а как тогда?

/* Программа содержит класс massiv, для которого определена функция определения количества
положительных элементов между максимальным и минимальным элементом динамического массива
(check_this), функция вывода, конструктор, деструктор. Программа обрабатывает 5 таких объектов
и выводит их в порядке увеличения значения check_this. */



Мне удалось сократить количество ошибок до 17... smile.gif


--------------------
Не думай о белой обезьяне.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Мне удалось сократить количество ошибок до 17
Даже если ты уберешь все ошибки, это ничего не изменит. Твоя программа не будет работать корректно. Слишком много подводных камней. Вот так вот - будет:

#include <iostream>
using namespace std;

class massiv {

public:
void showall() {
for (int i=0; i<s; i++) cout << " | " << mas[i] << " | ";
cout << endl;
}

int check_this(){
int max=0;
int min=0;
for (int i=1; i<s; i++){
if(mas[i]>mas[max]) max=i;
if(mas[i]<mas[min]) min=i;
}
if (max==min) return 0;
int check=0;
int d=1;
if (max<min) d=-1;
for (int i=min; i!=max; i=i+d) if(mas[i]>0) check++;
return check;
}

massiv() {
cout << "How many digit in array?" << endl;
cin >> s;
cout << "Input " << s << " digit" << endl;
mas = new int[s];
for(int i = 0; i < s; i++) cin >> mas[i];
}

// копирование массива
massiv(const massiv &mv) {
init(mv.mas, mv.s);
}

// присваивание массива
massiv& operator = (const massiv &mv) {
if(this == &mv) return *this;
delete mas;
init(mv.mas, mv.s);
return *this;
}

~massiv() {
delete [] mas;
}
private:
int s;
int *mas;

void init(const int *arr, int size) {
mas = new int [s = size];
for(int i = 0; i < s; i++)
mas[i] = (arr == 0) ? 0 : arr[i];
}
};

int main() {
const int n = 5;
massiv a[n];

bool flag=false;
while (flag==false) {
flag=true;
for (int i=0; i<(n - 1); i++) {
if(a[i].check_this() > a[i+1].check_this()) {
flag=false;
massiv buffer = a[i];
a[i] = a[i+1];
a[i+1] = buffer;
}

}
}
for (int i=0; i<n; i++) a[i].showall();
return 0;
}
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 6:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name