[C] Sumowanie liczb wczytywanych z konsoli

kbek
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 3 lis 2012, o 12:31
Płeć: Mężczyzna
Lokalizacja: Bgi
Podziękował: 1 raz

[C] Sumowanie liczb wczytywanych z konsoli

Post autor: kbek »

Czesc, potrzebuje pomocy z prostym programem w c. Wiec mam takie zadanko:
Napisz program, który oblicza sumę pojawiających się na wejściu liczb.

Wejście

Na wejście programu podana zostanie pewna niewielka ilość małych liczb całkowitych (z zakresu \(\displaystyle{ -100 \ldots 100}\)). Poszczególne liczby zostaną rozdzielone znakiem nowej linii.

Wyjście

Na wyjściu ma się pojawić ciąg liczbowy, którego i-ta pozycja jest równa sumie i pierwszych wczytanych z wejścia liczb. Poszczególne liczby należy rozdzielić znakami nowej linii.

No i tu sie pojawia taki problem w moim kodzie, ze caly czas dodaje nowo wpisana liczbe do 2 pierwszych a nie sumuje wszystkich i liczy dalej

A wiec moj kod wyglada tak

Kod: Zaznacz cały

#include <stdio.h>
int main()
 {
   int a, b;
   	
    (scanf("%d %d", &a, &b)==2);

   {
	printf("%d
", a+b);
     int c;
    while( scanf("%d" , &c), 
	 printf("%d
", a+b+c));
   }
   return 0;
 }
I moje pytanie jak to rozgryzc?
Ostatnio zmieniony 3 lis 2012, o 16:26 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Całe wyrażenia matematyczne umieszczaj w tagach [latex] [/latex].
knrdk
Użytkownik
Użytkownik
Posty: 36
Rejestracja: 12 mar 2009, o 13:54
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 5 razy
Pomógł: 7 razy

[C] Sumowanie liczb wczytywanych z konsoli

Post autor: knrdk »

A po co wczytujesz dwie pierwsze liczby poza pętlą ? Zostaw samą pętlę while.
Zdefiniuj sobie jakąś zmienną typu int równą początkowo 0, a potem w pętli while dodawaj do niej c i wyświetlaj tą sumę.

Po co dawałeś tutaj to porównanie ?

Kod: Zaznacz cały

(scanf("%d %d", &a, &b)==2);
I po co ten nawias klamrowy po tej linijce ?

Czemu dałeś przecinek po while ?

Kod: Zaznacz cały

while( scanf("%d" , &c), 
printf("%d
", a+b+c));
Poczytaj sobie jakiś podstawowy kurs C i zobacz jak wygląda składnia tego języka, na początek może to: ... uj%C4%85ce
kbek
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 3 lis 2012, o 12:31
Płeć: Mężczyzna
Lokalizacja: Bgi
Podziękował: 1 raz

[C] Sumowanie liczb wczytywanych z konsoli

Post autor: kbek »

troche to zmienilem , ale efekt jest ten sam, ja zupelnie nie kumam co mam zrobic

Kod: Zaznacz cały

#include <stdio.h>
int main()
{
int a=0;
 scanf("%d", &a );

int c;
while( scanf("%d" , &c)) 
printf("%d
", a+c);

return 0;
}
Ostatnio zmieniony 3 lis 2012, o 16:26 przez Afish, łącznie zmieniany 1 raz.
Powód: Stosuj tagi code.
knrdk
Użytkownik
Użytkownik
Posty: 36
Rejestracja: 12 mar 2009, o 13:54
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 5 razy
Pomógł: 7 razy

[C] Sumowanie liczb wczytywanych z konsoli

Post autor: knrdk »

Już prawie dobrze, tylko znowu niepotrzebnie wczytujesz pierwszą liczbę poza pętlą. No i nie powinieneś wyświetlać a+c, tylko dodać c do a i wyświetlić a. I jeszcze w warunku pętli trzeba sprawdzać czy udało się wczytać 1 znak.

Poprawiony kod:

Kod: Zaznacz cały

#include <stdio.h>
int main()
{
int a=0;

int c;
while( scanf("%d" , &c)==1){
    a=a+c;
    printf("%d
", a);
}

return 0;
}
ODPOWIEDZ