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

Gdzie jest błąd?

0 głosów
310 wizyt
pytanie zadane 4 października 2015 w C i C++ przez Burgonys Początkujący (440 p.)
edycja 4 października 2015 przez Patrycjerz

Witam, podczas nauki programowania w języku c napotkałem na błąd, program z założenia ma zapytać użytkownika o to, ile razy chce on wykonać dodawanie, a następnie o to ile liczb dodać i wszysytko działa poprawnie, poza tym, że suma każdego kolejnego dodawania, jest jednocześnie sumą z poprzednich działań (Opisałem to dość chaotycznie, więc może wytłumaczę na przykładzie). Załóżmy, że chcę wykonać 2 działania, w pierwszym chcę dodać do siebie 3 liczby 1+2+3=6, dotąd wszystko wydaje się działać prawidłowo, jednak przy drugim działaniu, załóżmy, że chcę dodać 2 liczby 4+5, otrzymałbym wynik 15(czyli również sumę poprzednich liczb), zależałoby mi natomiast na tym, aby oba te działania były wykonywane osobno, oto kod:

#include <stdio.h>

int main()
{
   int n, w, suma = 0, c, wartosc, d;

    printf("Wpisz, ile razy, chcesz wykonac dodawanie\n");
    scanf("%d", &w);
    for (d = 1; d <= w; d++)
        {

   printf("Wpisz, ile liczb chcesz do siebie dodac\n");
   scanf("%d", &n);

   printf("Wprowadz %d liczby\n",n);

   for (c = 1; c <= n; c++)
   {
      scanf("%d", &wartosc);
      suma = suma + wartosc;
   }

   printf("Suma wprowadzonych liczb = %d\n",suma);

    }

}

Co powinienem poprawić, aby kod działał prawidłowo? Jestem otwarty na wszelkie uwagi, więc jeśli są tu inne błędy, to chętnie je poprawię, z góry dziękuję za odpowiedź.

2 odpowiedzi

+1 głos
odpowiedź 4 października 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
wybrane 4 października 2015 przez Burgonys
 
Najlepsza

Wyzeruj zmieną suma po wyświetleniu.

printf("Suma wprowadzonych liczb = %d\n",suma);
suma = 0;

 

komentarz 4 października 2015 przez Burgonys Początkujący (440 p.)
Dzięki wielkie za odpowiedź ;)
+1 głos
odpowiedź 4 października 2015 przez Radfler VIP (101,030 p.)

Musisz na końcu pętli zerować zmienną suma:

printf("Suma wprowadzonych liczb = %d\n",suma);
suma = 0;
komentarz 4 października 2015 przez Radfler VIP (101,030 p.)
edycja 4 października 2015 przez Radfler

Kurde, spóźniłem się :/

EDIT: Ale dziękuję za yes :)

komentarz 4 października 2015 przez Burgonys Początkujący (440 p.)
To ja dziękuję za odpowiedź ;)

Podobne pytania

0 głosów
4 odpowiedzi 667 wizyt
pytanie zadane 20 sierpnia 2015 w C i C++ przez Szahid Pasjonat (20,970 p.)
0 głosów
2 odpowiedzi 959 wizyt
pytanie zadane 31 sierpnia 2015 w C i C++ przez xR Mądrala (6,260 p.)
0 głosów
3 odpowiedzi 542 wizyt
pytanie zadane 12 lutego 2019 w C i C++ przez Fan Początkujący (250 p.)

93,600 zapytań

142,525 odpowiedzi

322,993 komentarzy

63,085 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

Kursy INF.02 i INF.03
...