• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Każda zmienna, którą wprowadzę z konsoli jest powiększana o ilość wprowadzonych zmiennych. O co chodzi?

VPS Starter Arubacloud
0 głosów
147 wizyt
pytanie zadane 9 maja 2017 w C i C++ przez Karol.99 Użytkownik (550 p.)
#include <iostream>

using namespace std;



int main()
{
    int ilosc_liczb;
    cout << "Ile liczb: ";
    cin >> ilosc_liczb;

    float liczby[ilosc_liczb];
    for(int i=1; i<=ilosc_liczb; i++)
    {
        cout << "Liczba " << i << ".: ";
        cin >> liczby[0];
        liczby[0]++;
    }

    for(int i=1; i<=ilosc_liczb; i++)
    {
        cout << liczby[0] << endl;
        liczby[0]++;
    }

    return 0;
}

2 odpowiedzi

+1 głos
odpowiedź 9 maja 2017 przez unknown Nałogowiec (39,560 p.)
wybrane 9 maja 2017 przez Karol.99
 
Najlepsza
int ilosc_liczb;
    cout << "Ile liczb: ";
    cin >> ilosc_liczb;
 
    float liczby[ilosc_liczb];

Rozmiar tablicy musi być znany w momencie kompilacji.

Zrobiłem tak jak mówiłeś, ale jest ten sam problem, tylko że teraz powiększa zmienne o 1.

Trudno żeby nie powiększało o 1, kiedy inkrementujesz każdy element tablicy. 

btw. Tablice mają indeksy od 0 do n-1 (gdzie n to rozmiar tablicy).

komentarz 9 maja 2017 przez Karol.99 Użytkownik (550 p.)
Faktycznie, nie wiem dlaczego wstawiłem tą linijkę z inkrementacją.

Dzięki.

Ale rozmiar tablicy wpisałem z konsoli i działa ;)
komentarz 9 maja 2017 przez unknown Nałogowiec (39,560 p.)

Ale rozmiar tablicy wpisałem z konsoli i działa ;)

Mam lepszy argument: http://eel.is/c++draft/dcl.array

W C++ nie ma VLA. Jeśli rozmiar tablicy nie jest znany w czasie kompilacji musisz użyć new/delete lub vector'a

komentarz 9 maja 2017 przez Karol.99 Użytkownik (550 p.)
Dzięki, dobrze wiedzieć.
Przyda się.
0 głosów
odpowiedź 9 maja 2017 przez VerbasterS Początkujący (320 p.)

Poprawilem nieco twoj kod niewiem ale niewiem czy o takie cele chodzilo

#include <iostream>

using namespace std;



int main()
{
    int ilosc_liczb;
    cout << "Ile liczb: ";
    cin >> ilosc_liczb;

    float liczby[ilosc_liczb];
    for(int i=0; i<ilosc_liczb; i++)
    {
        cout << "Liczba " << i++ << ".: ";
        cin >> liczby[i];
        liczby[i];
    }

    for(int i=0; i<ilosc_liczb; i++)
    {
        cout << liczby[i] << endl;
        liczby[i];
    }

    return 0;
}

za kazdym razem petli wykonujesz zapisanie liczby do tablicy o numerze 0 o wiele lepszym rozwiazaniem jest uzycie i ale najpierw musisz zmienic ja na 0 aby zapisywac 1 miejsce w tabeli. w dodatku musisz zmienic wtedy znak <= na samo <.

Jeszcze raz napisze niejestem pewny czy oto chodzilo prosze o odpowiedz.

komentarz 9 maja 2017 przez Karol.99 Użytkownik (550 p.)

Uruchomiłem Twój kod u siebie i też był jakiś błąd, ale wiem o co Ci chodziło. Zrobiłem tak jak mówiłeś, ale jest ten sam problem, tylko że teraz powiększa zmienne o 1.

#include <iostream>

using namespace std;



int main()
{
    int ilosc_liczb;
    cout << "Ile liczb: ";
    cin >> ilosc_liczb;

    float liczby[ilosc_liczb];
    for(int i=0; i<ilosc_liczb; i++)
    {
        cout << "Liczba " << i+1 << ".: ";
        cin >> liczby[i];
        liczby[i]++;
    }

    for(int i=1; i<=ilosc_liczb; i++)
    {
        cout << liczby[0] << endl;
        liczby[0]++;
    }

    return 0;
}

 

komentarz 9 maja 2017 przez VerbasterS Początkujący (320 p.)
sproboj takze wstawic w tablice zamiast [0] [i] w 2 petli i usunac zmienic liczby[0]++ na liczby[i] poprost wstawic i i usunac ++
komentarz 9 maja 2017 przez VerbasterS Początkujący (320 p.)

Przepraszam ale skopiowalem nie ten kod byl w nim maly blad a mianowicie w linijcie

cout << "Liczba " << i++ << ".: "; 

powinno byc cout << "Liczba " << i+1 << ".: ";

poprawiony kod wyglada nastepujaco:

#include <iostream>

using namespace std;

int main()
{
    int ilosc_liczb;
    cout << "Ile liczb: ";
    cin >> ilosc_liczb;

    float liczby[ilosc_liczb];

    for(int i=0; i<ilosc_liczb; i++)
    {
        cout << "Liczba " << i+1 << ".: ";
        cin >> liczby[i];
        liczby[i];
    }

    for(int i=0; i<ilosc_liczb; i++)
    {
        cout << liczby[i] << endl;
        liczby[i];
    }

    return 0;
}

 

Podobne pytania

0 głosów
0 odpowiedzi 195 wizyt
pytanie zadane 13 kwietnia 2019 w C# przez SeveTo Nowicjusz (170 p.)
+1 głos
0 odpowiedzi 323 wizyt
pytanie zadane 12 marca 2022 w C i C++ przez letmestay Użytkownik (520 p.)
0 głosów
0 odpowiedzi 163 wizyt
pytanie zadane 18 października 2020 w C i C++ przez szymal22 Nowicjusz (140 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...