Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z napisanym program [Tablice, pętle, if else] Liczby parzyste i nieparzyste

Ostatnio zmodyfikowano 2017-05-12 18:56
Autor Wiadomość
JoyEn12
Temat założony przez niniejszego użytkownika
Problem z napisanym program [Tablice, pętle, if else] Liczby parzyste i nieparzyste
» 2017-05-12 18:08:39
Miałem zamiar stworzyć program któremu podam liczbę cyfr. Następnie program każe mi wpisać tyle cyfr ile kazałem mu na początku np. Podałem liczbe cyfre 10 i potem podaje 10 cyfr po kolei. Kiedy to zrobię program wyświetla te liczby i mówi która jest parzysta a która niepatrzysta. Problem w tym nie wszystko działa poprawnie do póki liczba cyfr nie jest większa niż 6. Nie ważne czy wpisze 60 czy 600 maksymalnie zawsze moge wpisać 6 cyfr czego to jest wina ?

C/C++
#include <iostream>

int main()
{
    int a;
    int liczba[ a ];
    int licznik = 0;
    std::cout << "Podaj liczbe cyfr" << std::endl;
    std::cin >> a;
    do
    {
        std::cin >> liczba[ licznik ];
        licznik++;
    } while( licznik < a );
   
    std::cout << "Podales nastepujace liczby: " << std::endl;
    licznik = 0;
   
   
    do
    {
        if( liczba[ licznik ] % 2 == 0 )
        {
            std::cout << liczba[ licznik ] << "=parzysta" << std::endl;
        }
        else
        {
            std::cout << liczba[ licznik ] << "= nieparzysta" << std::endl;
        }
        licznik++;
    } while( licznik < a );
   
    return 0;
}
P-161006
karambaHZP
» 2017-05-12 18:56:06
int liczba[ a ];
To jest niepoprawne w C++. Rozmiar musi być
constexpr
.

Poza tym ponownie wprowadzasz wartość do zmiennej a i tutaj zaczynają sie schody.

Jeśli chcesz mieć tablicę o rozmiarze ustalanym w czasie trwania programu użyj std::vector lub dynamicznie alokuj pamięć na tablicę new i delete.

Edit: umknęło mi. Wartość a jest nieokreślona przed deklaracją tablicy co jest UB.
P-161008
« 1 »
  Strona 1 z 1