c++ suma cyfr liczby trzy cyfrowej

0

Witam!

#include<iostream>
using namespace std;

int main()
{
    unsigned int ln,c1,c2,x,y;
    cin>>ln;

    for(x=0; (ln-x)%100!=0; x++) c1=ln-x-1;
    for(y=0; (x-y)%10!=0; y++) c2=x-y-1;
    
    c1=c1/100;
    c2=c2/10;
    
    cout<<c1+c2+y;
    
    system("pause");
} 

Program ma za zadanie znaleźć sume cyfr liczby trzy cyfrowej, jednak gdy wprowadzę liczbę 100, 200, 300,...,900 program wyświetla mi niepoprawną wartość, nie mam pomysłu jak zmodyfikować kod, żeby działał poprawnie?

0

o_O

int liczba;
cin>>liczba;
cout<<(liczba%10)+(liczba/10)%10+(liczba/100)%10;
0

wow, dzięki:D

0

witam mam taki problemik ze stwozeniem ów programu.. chodzi o to aby wyświetlał sume liczb 3 cyfrowych wiekszych od 20... yyy... pomocy.. co mam dodać do tego kodu? i w którym miejscu? bo programik hula.. tylko.. liczy a nie wyświetla tych wszystkich możliwych liczb.. pozdrawiam

0

To co on ma wyświetlać? Liczby których suma cyfr jest większa od 20? Puść sobie pętle...

0

ma wyświelac sume trzycyfrowych liczb wiekszych od 20 np 777 = 21... itd.. blady jestem z programowania dla tego prosze o pomoc..

0

Ty jesteś glupi, czy po prostu nie umiesz pisać po polsku? To co podałeś, tzn 777 = 21 to jest SUMA CYFR liczby trzycyfrowej. Więc co ten program ma robić w końcu?
Bo gdyby mial wypisywać to co napisałeś, tzn "sume trzycyfrowych liczb wiekszych od 20" (btw każda liczba trzycyfrowa jest większa od 20, bo najmniejsza liczba trzycyfrowa to 100) to wynik byłby:
100+101+...+999
O to ci chodzi?
(wiem ze nie, ale próbuje cie zmusić do myślenia...)

0

"Napisz program, który bedzie wyświetlał wszystkie liczby trzycyfrowe, których suma cyfr jest wieksza od 20." jak już mówiłem nie jestem w tym mocny.. stwierdzenie iż pętla załatwi wszysko nic mi nie mówi.. ok żle sprecyzowałem swoje zapytanie.. myslę że teraz wszysko juz jest jasne o co chodzi.

0

No brawo. Wiesz juz też ze

int suma = (liczba%10)+(liczba/10)%10+(liczba/100)%10;

Podaje ci ile wynosi suma cyfr liczby trzycyfrowej. Teraz należy tylko przelecieć po liczbach od 100 do 999 (mozesz nie wiedzieć, ale zaręczam że będą to wszystkie liczby trzycyfrowe) i wypisywać te liczby dla których podany wyżej wzrór zwraca wiecej niz 20.

0

Nudzi mi się

for(int a = 100; a != 999; a++)
{
    if(((a%10)+(a/10)%10+(a/100)%10) > 20)cout << a << " ";
}  

Jak jest jakiś bład to poprawcie
PS Był błąd. Poprawiono
PS2 Trochę zoptymalizowałem

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