1 / 47
Sep 2015

Witam

Jestem nowym użytkownikiem portalu i na samym poczatku mam problem z zadaniem SUMA smile

Gdy testuje program to wszystko działa tak jak powinno, a pomimo tego zadanie nie zaliczone przez sędziego. Prosze o info co jest nie tak w tym kodzie

Poniżej przesyłam kod

#include <iostream>

using namespace std;

int suma [3], liczby[3];


int main()
{
    for (int i=0; i<3;i++)
    {
    cin >> liczby [i];
    }

    suma[0]=liczby[0];
    cout<<suma[0]<<endl;

    for (int i=1; i<3;i++)
    {
     suma[i]=liczby[i]+suma[i-1];
     cout<<suma[i]<<endl;
    }
    
    return 0;
}
  • created

    Sep '15
  • last reply

    Dec '21
  • 46

    replies

  • 6.4k

    views

  • 25

    users

  • 10

    likes

  • 14

    links

..Na wejście programu podana zostanie pewna nieokreślona, ale niewielka ilość małych liczb całkowitych..

A więc może tych liczb być 3 a może być i więcej lub mniej.
Nie musisz tablicować, możesz na bieżąco wczytywać i wypisywać, poniższa konstrukcja wczytuje nieokreśloną liczbę danych [aż napotka koniec pliku - eof, gdy dane wczytujesz z przekierowanego pliku, lub gdy naciśniesz klawisze ctrl+z windows, ctr+d linux, gdy testujesz na konsoli]

while (cin >> liczba){
    cout << liczba << endl;
     .........
}

Witam. Równiez mam problem z tak prostym zadaniem, nie wiem co jest nie tak, że sędzie nie akceptuje mojego kodu. Mógłby mi ktos pomóc? pliiis

Testuj na ideone.com, po AC usuwaj swój kod z forum, od czasu do czasu warto używać entera, zobaczyłbyś to np na ideone, gdybyś tam tetsował.

Dzięki za informacje, pomogła. CO prawda na ideonie wszystko było ok, ale enter pomógł. bede pamiętac na przyszłosc. Pozdrawiam

Wątpię. Na ideone.com nie wklejaj tylko samego kodu, bo w ten sposób sprawdzisz tylko czy się skompiluje - a to przecież możesz robić też u siebie. Jeżeli nie umiesz jeszcze dobrze testować u siebie, to właśnie na ideonie, możesz testować, ale w tym celu musisz tam wklejać też dane testowe, w okienko: enter input (stdin) i sprawdzać, czy w okienku output (stdout) jest wynik taki jaki powinien być.

Ja mam pytanie apropo Javy - jak ma w nim wyglądać "nieokreślona ilość wejść"? Po zmianie forum, nie mogę odnaleźć odpowiedniego tematu.

18 days later

while(!cin.eof()) to kiepski pomysł. Dodaj w swoim teście w codebloks lub na ideone.com [ENTER], za -3 i zobacz co Ci wyjdzie.

PS
Czy tak trudno przeczytać ten cały wątek?

1 month later

Cześć! właśnie zaczynam zabawe ze SPOJ'em.
Czy mógłby ktoś zwrócić uwage na mój kod, co jes nie tak??

include

using namespace std;

int suma=0, a;

int main()
{
for(int i=1; i<=3; i++)
{

cin>>a;
cout<<suma+a<<endl;
suma=suma+a;

}
return 0;
}

Przeczytałeś cały ten wątek, czy tylko się dopisałeś?

1 month later

zamiast for(;;;) daj while (scanf("%hd",&n) != EOF), i usuń scanf z wnętrza pętli. W twojej wersji pętla nigdy się nie skończy, więc masz przekroczenie czasu (bo pętla czeka na następną liczbę, a ta nie nadchodzi bo już się skończyły)

Kod z forum też usuń, bo jak to poprawisz to ci zaliczy.

Cześć, ja również próbuję zrobić to zadanie, mam niestety problem, którego nawet pomimo przeczytania tego tematu wciąż nie potrafię rozwiązać. Mogę liczyć na jakąś wskazówkę?

KOD USUNIĘTY

while (cin>>liczba){...}

Ta pętla będzie się wykonywała dopóki nie będzie ustawiony bit EOF (koniec pliku) lub failbit( złe dane wejściowe).

Jako przykład:

int x;
cin >> x;

Przypuśćmy, że wpisaliśmy ciąg znaków. Co się wtedy stanie? Jak już wcześniej napisałem zostanie ustawiony failbit.

Pętla while(true){} to pętla nieskończona. Można ją zakończyć wyjściem z funkcji ( return) lub za pomocą break.
W warunku pętli nieskończonej musiałbyś napisać przynajmniej coś takiego:

while (true){
cin>>liczba;
if (cin.eof()) break; // tutaj przerywana jest pętla, gdy koniec pliku
}

PS.
Odsyłam do cpp0x.pl95

a także do różnorakich książek. Polecam książkę C++ Szkoła Programowania62 dla uzupełnienia wiedzy.

18 days later
#include<iostream>
using namespace std;
int main(void)
{
    int i;
    char x;
    while(cin>>x)
    {
        i+=x;
        cout<<i<<endl;
        
    }
}

co mogę poprawić w tym zadaniu aby zaliczyli mi ???