Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween
Avatar
oliver.olejnik:9.4.2018 23:15

Čaute, riešim program na ciferný súčet čísla, no mám s tým menší problém. Na výstupe musí byť jedna číslica, tzn. keď na vstupe dostanem 165, na výstupe musí byť 3 (1+2), nie 12. Môj program mi zatiaľ hádže iba 12, neviem ako ten cyklus zopakovať, viete mi s tým niekto pomôcť? Dík :)

 
Odpovědět
9.4.2018 23:15
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na oliver.olejnik
Matúš Olejník:10.4.2018 2:50

Ahoj spolumenovec :D môže byť takto?

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

int main() {
    int input, result = 0;

    scanf(" %d", &input);

    while (1) {
        while (input != 0) {
            result += input % 10; //pripocitanie poslednej cifry cisla
            input /= 10; //"odseknutie" poslednej cifry cisla
        }

        //ak ma vysledok len jednu cifru ukonci cyklus
        if (result < 10) {
            break;
        }
        //inak pokracuj s docasnym vysledkom to iste
        else {
            input = result;
            result = 0;
        }
    }
    printf("Vysledok je: %d", result);

    getchar(); getchar();

    return 0;
}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
10.4.2018 2:50
/* I am not sure why this works but it fixes the problem */
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.