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

zapisywanie liczb do tablicy

Object Storage Arubacloud
0 głosów
117 wizyt
pytanie zadane 11 stycznia 2016 w C i C++ przez CichoCiemny Początkujący (480 p.)

http://pl.spoj.com/problems/SUMA/

tutaj jest kod: 

#include <iostream>

using namespace std;

int liczby[100];
int suma=0;
int n; // ile liczb trzeba zapisac do tablicy

int main()
{
cin >> n;
for (int i=0; i<n ;i++)
{
cin >> liczby[i];
}
        
for (int k=0; k<n; k++)
{
suma+=liczby[k];
cout<< suma<<endl;
}

return 0;
}

W tym kodzie jest jedna rzecz inaczej niż jest napisane w zadaniu, jest tutaj dodatkowa zmienna do wprowadzenia którą jest ilość liczb które będą wpisywane, moje pytanie: jak napisać ten program żeby wczytywał dla nieokreślonej ilości liczb. Przeczytałem na forum że robi się to za pomocą while(cin >> liczby) i rzeczywiście program zapisywal mi liczby cały czas ale skąd program ma wiedzieć kiedy wpisałem już ostatnią liczbę  bo robi to w nieskończoność....

1 odpowiedź

+1 głos
odpowiedź 11 stycznia 2016 przez Radfler VIP (101,030 p.)
wybrane 11 stycznia 2016 przez CichoCiemny
 
Najlepsza

Jeżeli testujesz program u siebie na komputerze to stdin pobiera ciąg znaków wpisany w konsoli na klawiaturze. Ten strumień (stdin/std::cin) na SPOJu nie jest konsolą, tylko plikiem. Plik nie może być nieskończony, więc program (na SPOJu) nie będzie pobierał danych w nieskończoność.

komentarz 11 stycznia 2016 przez CichoCiemny Początkujący (480 p.)
a ok rozumiem, czyli jak powinien wyglądać ten kod? bo chyba coś nie tak zrobiłem jednak, usunałem pierwszą pętle i wstawiłem tam tego whila i nadal cos jest nie tak chyba nie do końca rozumiem jak to działa
komentarz 11 stycznia 2016 przez Radfler VIP (101,030 p.)

Szczerze: jak dla mnie ten kod powinien wyglądać zupełnie inaczej. W tym zadaniu tablice nie są potrzebne (wręcz ich nie powinno tu być). Poza tym całe zadanie można rozwiązać w jednej pętli. Pokażę Ci taki pseudokod:

int liczba;
int suma = 0;

while(std::cin >> liczba) { // Pobieramy dopóki w pliku są dane
  // Potrzebne operacje: dodanie do sumy, wypisanie na stdout
}
komentarz 11 stycznia 2016 przez CichoCiemny Początkujący (480 p.)
aaa w ten sposób już rozumiem, dzięki!

Podobne pytania

+1 głos
3 odpowiedzi 1,489 wizyt
pytanie zadane 20 stycznia 2016 w C i C++ przez bergman Obywatel (1,600 p.)
+2 głosów
2 odpowiedzi 3,414 wizyt
pytanie zadane 14 lipca 2015 w C i C++ przez Wadim Początkujący (260 p.)
+1 głos
2 odpowiedzi 206 wizyt
pytanie zadane 16 kwietnia 2015 w C i C++ przez Ehlert Ekspert (212,790 p.)

92,620 zapytań

141,474 odpowiedzi

319,815 komentarzy

62,004 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...