NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.
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
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í
+2,50 Kč
Ř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.