Konstrukcja w programie

0

Dlaczego konstrukcja takiego typu moze być nie zaliczana na kolokwium moim zdaniem jest poprawna. Jak inaczej można zdeklarować tą tablice z zadania?

typu:

 int n;
cin>>n;
int tab[n];

A dokładniej chodzi o takie zadanko: Jak moge przekonać wykładowce że to jest dobry zapis?

#include <iostream>

using namespace std;

int main()
{
    int n = 0;
    cin >> n;
    int liczba;
    int licznik = 0;

    for (int i = 0; i < n; ++i) {
        cin >> liczba;
        if (liczba > 0 && liczba % 3 == 0) {
            cout << liczba << endl;
        }
        else if (liczba < 0) {
            ++licznik;
        }
    }

    cout << licznik << endl;

    return 0;
}
0
Arturekk napisał(a):

typu:

int n;
cin>>n;
int tab[n];

Bo to po prostu jest niepoprawne W czasie kompilacji nie jest znany rozmiar tablicy, więc kompilator nie powinien tego przepuszczać.

Arturekk napisał(a):

A dokładniej chodzi o takie zadanko: Jak moge przekonać wykładowce że to jest dobry zapis?

#include <iostream>

using namespace std;

int main()
{
    int n = 0;
    cin >> n;
    int liczba;
    int licznik = 0;

    for (int i = 0; i < n; ++i) {
        cin >> liczba;
        if (liczba > 0 && liczba % 3 == 0) {
            cout << liczba << endl;
        }
        else if (liczba < 0) {
            ++licznik;
        }
    }

    cout << licznik << endl;

    return 0;
}

Nie wiem o co chodzi. To jest poprawne, ale nie ma nigdzie użytej takiej tablicy, której używałeś tam wyżej

2
int n;
cin>>n;
int tab[n];

To nie działa w C++. Tutaj (https://groups.google.com/forum/#!topic/comp.std.c++/K_4lgA1JYeg) masz napisane czemu.

0

To jak ten program ma wyglądać bez tej kontrukcji??

0

Tak samo. Przecież w programie jej nigdzie nie ma.

A tak w ogóle jak potrzebujesz tablicy o rozmiarze nieznanym w czasie kompilacji to używaj std::vector<>.

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