Помощь - Поиск - Пользователи - Календарь
Полная версия: Конструктор С++
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
ammaximus
 #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
volvo
Цитата
Мне удалось сократить количество ошибок до 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;
}
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.