Задача:
Дано список цін деяких товарів , що задається масивом і дано номінал купюри(їх є необмежена кількість).
Вивесті кожні 2 товари, які можна купити за будь-яку кількість цих купюр БЕЗ  ЗДАЧІ.
____________________________________________________________________________
Підкажіть алгоритм, який би був оптимальним для великої кількості товарів.?

2

(6 відповідей, залишених у C++)

Bartash написав:

Уточніть коментами до коду, які саме цикли проблемні: їх багато тут.

я відредагував початковий код

3

(6 відповідей, залишених у C++)

Hanter написав:

Може скажете що за баг ?

1)компілятор пропускає 1 цикл.

 for (int t = 0; t < n; t++){
        for (int i = 0; i < m; i++){
            //шукаємо напівстепені входу
            for (int j = 0; j < p; j++){
                powin[t] = 0;
                if (spysok[i][2] == t + 1){
                    powin[t]++;
                    cout << "deg^-(v" << t+1 << ")=" << powin[t] << endl;
                }
            }
        }
    }

2)а для наступного циклу виводить просто 1

4

(6 відповідей, залишених у C++)

УМОВА!!!!
Задано множину впорядкованих пар вершин , що відповідають дугам орієнтованого графа. Знайти напівстепені входу та виходу кожної вершини.

#include<iostream>
#include<cmath>

using namespace  std;

void main(){
    setlocale(LC_ALL, "Ukrainian");
    const int p = 2;
    int n, m;
    cout << "Введiть кiлькiсть дуг: " << endl;
    cout << "m=";
    cin >> m;
    cout << "Введiть кiлькiсть вершин: " << endl;
    cout << "n=";
    cin >> n;
    int **spysok, *powin, *powout; //powin- масив напівстепенів входу ;powout- масив напівстепенів виходу ;
    spysok = new int *[m];
    for (int i = 0; i < m; i++){
        spysok[i] = new int[p];
    }
    powin = new int[n];
    powout = new int[n];
    cout << "Початкова вершина:   Кiнцева вершина:" << endl;
    for (int i = 0; i < m; i++){
        for (int j = 0; j < p; j++){
            cout << "     ";
            cin >> spysok[i][j];
        }
    }
    for (int t = 0; t < n; t++){//цей цикл компілятор пропускає (нічого не виводить на екран)
        for (int i = 0; i < m; i++){
            //шукаємо напівстепені входу
            for (int j = 0; j < p; j++){
                powin[t] = 0;
                if (spysok[i][2] == t + 1){
                    powin[t]++;
                    cout << "deg^-(v" << t+1 << ")=" << powin[t] << endl;
                }
            }
        }
    }
    for (int k = 0; k < n; k++){
        for (int i = 0; i < m; i++){//шукаємо напівстепені виходу
            for (int j = 0; j < p; j++){
                powout[k] = 0;
                if (spysok[i][1] == k + 1){
                    powout[k]++;
                    cout << "deg^+(v" << k+1 << ")=" << powout[k] << endl;
                }
            }
        }
    }
    for (int i = 0; i < m; i++){
        for (int j = 0; j < p; j++){
            if (spysok[i][j]>n || spysok[i][j] < 0)
                cout << "FATAL ERROR!!!" << endl; break;
        }
    }
    delete []spysok;
    delete []powin;
    delete []powout;
    system("pause");
}

5

(4 відповідей, залишених у C++)

Logans написав:
mazurkevych написав:
koala написав:

Зазвичай при цьому компілятор показує (або підсвічує, або пише номер рядка), яке саме оголошення він має на увазі. Інакше раджу змінити компілятор.

Компілятор вказує на останній символ коду("}")

Хм... Друже, не знаю як в вас, але в мене компілює без помилок. Друге діло, що воно компільнуло і нічого не відбувається, або просто Windows закриває його як помилку.

до програми має бути прикріплений текстовий документ з відповідною назвою

6

(4 відповідей, залишених у C++)

koala написав:

This declaration

Зазвичай при цьому компілятор показує (або підсвічує, або пише номер рядка), яке саме оголошення він має на увазі. Інакше раджу змінити компілятор.

Компілятор вказує на останній символ коду("}")

7

(4 відповідей, залишених у C++)

ПОМИЛКА:
This declaration has no storage class or type specifier.
Ось код.

#include<iostream>
#include<string>
#include<fstream>

using namespace std;

class Device{
private:
    string Name, Maker;
    int  Warranty,Price;
public:
    Device() : Name(" "), Maker(" "), Warranty(0), Price(0){}
    void set(string nm, string mk, int wr, int rp){
        Name = nm;
        Maker = mk;
        Warranty = wr; 
        Price = rp;
    }
    void INPUT(istream &in){
        in >> Name >> Maker >> Warranty >> Price; 
    }
    void OUTPUT(ostream &out){
        out << Name << " " << Maker << " " << Warranty << " " << Price;
    }
    string getName(){ 
        return Name;
    }
    string getMaker(){ 
        return Maker;
    }
    int getWarranty(){
        return Warranty; 
    }
    int getPrice(){ 
        return Price; 
    }
};


void SORTING(Device *a, int n){
    Device temp;
    for (int i = 0; i < n; i++)
        for (int j = 0; j<n - 1 - i; j++)
            if (a[j].getPrice()>a[j + 1].getPrice())
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
}


void PRINTING(Device *a, int n, int warr){
    for (int i = 0; i < n; i++){
        if (a[i].getWarranty()> warr )
            a[i].OUTPUT(cout);
    }
}


void main(){
    int n, warr;
    ifstream input("Device.txt");
    ofstream output("sorted.txt");
    input >> n;
    Device *a = new Device[n];
    for (int i = 0; i < n; i++){
        a[i].INPUT(input);
    }
    SORTING(a, n);
    for (int i = 0; i < n; i++){
        a[i].OUTPUT(output);
    }
    cout << "Enter the minimum warranty:" << endl;
    cin >> warr;
    PRINTING(a, n, warr);
    delete []a;
    input.close();
    output.close();
    system("pause");
}