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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 14:17   #1
Morgusha
Форумчанин
 
Регистрация: 30.09.2009
Сообщений: 166
Печаль Обращение к массиву по индексу

Есть вот программа у меня таккая :

Код:
#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

const int SZ = 5;

class Dice{
private:
        int n_kubikov;
        int mas[SZ];
public:
        Dice() {n_kubikov=0;}
        Dice(int);
        Dice(int k, int kk[]);
        friend ostream& operator << (ostream& out, const Dice& d);
        Dice& gen() {
                for(int j = 0; j<n_kubikov; j++)
                        mas[j] = rand()%6+1;
                return *this;
        }
        Dice& operator += (int d);
        Dice& operator -= (int d);
        int operator [] (int num) const;
        int sum() const;
        int test() const;
};



int main(){
        srand(time(NULL));
        Dice b,a(7);
        int array[4] = {-8,5,2,9};
        Dice c(3,array);
        cout << "Kubiki a: " << a << endl;
        cerr << "Kubiki b: " << b << endl;
        cout << "Kubiki c: " << c << endl;
        //c.gen();
        //cout << "Kubiki c: " << c << endl;
        int answer = 0, num;
        do {
                cout << "1. brosit\t";
                cout << "2. dobavit\t";
                cout << "3. izyat\t";
                cout << "4. poluchit ochki\t";
                cout << "5. proverit sovpadeniya\t";
                cout << "0. vykhod" << endl;
                cin >> answer;
                switch(answer) {
                        case 1:
                        cout << "Rubiki c: " << c << endl;
                        c.gen();
                        cout << "Rubiki c: " << c << endl;
                        break;
                        case 2:
                        cout << "Kubiki c: " << c << endl;
                        cout << "vvedite chislo: ";
                        cin >> num;
                        c += num;
                        cout << "Kubiki c: " << c << endl;
                        break;
                        /*case 3:
                                cout<< "Kubiki c:"<<c<<endl;
                                cout<< "vvedite nomer kubika:";
                                cin>>num;
                                c -= num;
                                cout << "Kubiki c: " << c << endl;
                                break;
                                 */
                }
        } while(answer);
        return 0;
}

Dice::Dice(int num){
        n_kubikov=num;
        if(n_kubikov<0) {
                cerr << "Invalid set size; assigned 0" << endl;
                n_kubikov = 0;
        }

        if(n_kubikov>SZ) {
                cerr << "Invalid set size " << num << 
                        "; assigned " << SZ << endl;
                n_kubikov = SZ;
        }
        gen();
}

ostream& operator << (ostream& out, const Dice& d) {
        for(int j = 0; j<d.n_kubikov; j++)
                out << d.mas[j] << ' ';
        return out;
}
Dice::Dice(int k, int kk[]){
        n_kubikov = k;
        if(k<0) {
                cerr << "Invalid set size; assigned 0" << endl;
                n_kubikov = 0;
        }
        if(k>SZ) {
                cerr << "Invalid set size " << k << 
                        "; assigned " << SZ << endl;
                n_kubikov = SZ;
        }
        for(int j=0;j<n_kubikov;j++) {
                mas[j]=kk[j];
            if(kk[j] <= 0 ) {
                        cerr << "Invalid cube value " << kk[j] 
                                << " replaced 1"<< endl;
                        mas[j] = 1;
                }
                if(kk[j] > 6) {
                        cerr << "Invalid cube value " << kk[j] 
                                << " replaced 6"<< endl;
                        mas[j] = 6;
                }
        }
}
Dice& Dice::operator += (int p) {
        if(n_kubikov < SZ)  {
                if(p<1) {
                        cerr << "Invalid cube value " << p 
                                << " replaced 1"<< endl;
                        p = 1;
                }
                if(p > 6) {
                        cerr << "Invalid cube value " << p 
                                << " replaced 6"<< endl;
                        p =6;
                }
                mas[n_kubikov++] = p;
        }
        return *this;
}
вот где закоментирован /*case 3:
там мне нужно извлечь из массива кость по её номеру....я что то не могу этого сделать....подскажите как обратиться к массиву по индексам и потом удалить это значение !

Последний раз редактировалось Stilet; 28.10.2009 в 14:55.
Morgusha вне форума Ответить с цитированием
Старый 28.10.2009, 14:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну дык и пиши массив[индекс]
Чего же более?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.10.2009, 15:03   #3
Morgusha
Форумчанин
 
Регистрация: 30.09.2009
Сообщений: 166
По умолчанию

Да блин я писал,но не работало что то (((
Нужно p приравнять к индексу массива ?
Morgusha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по индексу (Delphi) VadEr Помощь студентам 0 06.10.2009 19:03
распределение по массиву SuBwooFer JavaScript, Ajax 2 31.08.2009 10:48
Как обратиться к объектам QGraphicsScene по индексу? jojahti Общие вопросы C/C++ 0 23.08.2009 21:27
Быстрый поиск по индексу valerij Microsoft Office Excel 1 21.04.2008 11:04