Kalkulator sumy n liczb – problem z pętlą for

0

Kalkulator ma na celu sumę n liczb, gdzie n jest deklarowane na samym poczatku. Jest to moja pierwsza pętla for podczas nauki tego pięknego języka jakim jest C++

Problem napotkany jest prawdopodobnie banalny, jednak występuję, a ja go nie potrafię wyłapać. Podaję ileś tam liczb do pętli. Po komunikacie podaj liczbę którą chcesz dodać, podaję liczbę i program mi ją pokazuje jednocześnie jako wynik. Nie uruchamia mi się pętla po raz kolejny. Czym to jest spowodowane?

cout << "Podaj ile liczb chcesz dodac"  << endl;
int ile;
int suma;
int liczba;
suma=0;
cin >> ile;
cout << "Podales " << ile << " liczb "  << endl;
for (int i=0; i<=ile; i=i+1);
  {
      liczba=0;
      cout << "Podaj liczbe ktora chcesz dodac" << endl;
      cin  >> liczba;
      suma=suma+liczba;
  }
  cout << "Wyszlo: " << suma;
5

co masz na końcu linijki z for ?

1
for (int i=0; i<=ile; i=i+1);

Źle ustawiona pętla + to coś na końcu

liczba=0;

po co to?

3

Zaleciłbym kilka fajnych usprawnień. :)

int main() { //ja sam używam nawiasów w stylu "java" i polecam
    std::cout << "Podaj ile liczb chcesz dodac: \n"; //używaj \n zamiast std::endl (sam nie jestem fanem 'using', więc zawsze używam przedrostka 'std::' zamiast 'using namespace std'
    int ile, sum=0; //uporządkuj zmienne tego samego typu w jednej linii //edit: takie użycie '=0', ustawia jedynie wartość 'sum', a 'ile' zostaje "bez wartości"
    std::cin >> ile;
    std::cout << "Podales " << ile << " liczb!\n";
    for (int i=0; i<ile; i++) { //operator '++' zwiększa wartość pola o '1'                 &&                     jeżeli zaczynasz od 'i=0', to uzycie 'i<x' spowoduje, ze pętla wykona się 'x' razy
        std::cout << "Podaj liczbe, ktora chcesz dodac: \n";
        int liczba; //deklaracja wymaganego pola tuż przed użyciem w std::cin
        std::cin >> liczba;
        sum += liczba; //'x += y' jest równoznaczne z 'x = x + y'
    }
    std::cout << "Wynik: " << sum;
    return 0;
}

Zawsze trzymaj porządek wcięć w kodzie, jeżeli nie możesz użyć tabulatora, to zawsze pisz 4 spacje zamiast niego.

Na razie zadawaj pytania w kategorii Newbie, jeżeli jesteś początkującym.

4

Trzy grosze - generalnie "using namespace" jest uznawane za złą praktykę i warto się jej wystrzegać, choć jest wygodniejsze. Poza tym jest jeszcze jedna opcja - zamiast using namespace std napisać np tak:

using std::cin, std::cout;
0

Dzięki wszystkim za pomoc - odruchowo wkradł się średnik :) Za pozostałe wskazówki jak to poprawić, również dziękuję, czasem warto wysłuchać opinii kogoś, kto się zna na rzeczy ;)

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