Wydawanie reszty metodą zachłanną – jak pozbyć się ostrzeżenia?

0

Napisałem program o wydawaniu reszty metodą zachłanną. Wyskakuje mi ostrzeżenie:

extended initializer lists only available with -std c++11 przy tab1 = new int [WIELKOSC_TAB]{20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5, 2, 1 };

Mógłby ktoś pomóc rozwiązać ten problem? :D

#include <iostream>
#include <stdlib.h>

using namespace std;

const short WIELKOSC_TAB = 14;
int *tab1;
int wybor;

int main()
{
    int r,p, i;
    cout << "Wybierz nominal: " << endl;
    cout << "1. polski zloty (przeliczony w groszach)" << endl;
    cout << "2. amerykanski dolar (przeliczony w centach)" << endl;





    cin >> wybor;
    if(wybor==1 || wybor==2)
    {



        switch (wybor)
        {
        case 1:
            tab1 = new int [WIELKOSC_TAB]{20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5, 2, 1 }; // zloty w groszach
            break;

        case 2:
            tab1 = new int [WIELKOSC_TAB]{100000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 25, 10, 5, 1 }; // dolar w centach
            break;
        }

    }
    else
    {
        cout << "Wybrales zla liczbe" << endl;
        system("PAUSE");
        return 0;
    }

    cout << "Podaj reszte do wyplacenia: ";
    cin >> r;

    i=0;
    while (r>0)
    {
        if (r >= tab1[i])
        {
            p=r / tab1[i];
            r=r-(tab1[i]*p);
            cout << tab1[i] << " x " << p << endl;
        }
        i++;
    }


    delete [] tab1;
    return 0;
}

4

-std=c++11 albo nowszy.

Przy czym jawne używanie new/delete to anti-pattern: https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/

0

Jak pozbyć się tego ostrzeżenia nie usuwając new/delete?

1

-std=c++11 albo nowszy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1