Podwójne pobieranie scanf

0

Witam, mam taki problem, który powtarza mi się dość często (na etapie zabawy z c). Otóż w kilku programach nie tylko z pętlą, scanf pobiera dwa razy z klawiatury liczbę. Pierwsza liczba odpowiada printf, który został napisany wcześniej, a druga liczba odpowiada printf, który dopiero się wyświetli. Chodzi np. o taki program, który sumuje podane cyfry, ale przy podaniu 1 przerywa program. Jak tego uniknąć proszę o pomoc.

   
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a,s;
  for( ; ; ){
    printf("Wpisz liczbe do zsumowania\n");
    scanf("%d\n", &a);
    if(a==1)
        break;
        else
            s+=a;
      }
  printf("wyswietlam zsumowane liczby\n");
  printf("%d\n",s);
    return 0;
} 
0

Dodaj spację przed %d. Możesz też skorzystać tu z pętli do .. while.

0

Niestety nic to nie pomogło, dalej jest jak wcześniej

1
scanf(" %d", &a);

ze spacją z przodu bez żadnych enterów na końcu.

0

Pierwsza liczba odpowiada printf, który został napisany wcześniej, a druga liczba odpowiada printf, który dopiero się wyświetli.
Zupełnie tego nie rozumiem. Jak dla mnie to działa ok: http://ideone.com/wvsdaa. Może podaj wejście, oczekiwane wyjście i faktyczne wyjście.

Natomiast masz błąd w swoim programie: int s - używasz zmiennej niezainicjalizowanej.

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