Problem z silnią – brak błędów kompilacji, ale nie działa prawidłowo

0

Mam zadanie z informatyki, żeby zrobić skrypt liczący silnię liczby n, oraz dodający cyfry tej silni. Mój skrypt wygląda tak:

unsigned int sumOfFactorialDigits( unsigned short n )
{   int wynik;
    int x;
    long long i;
    
    wynik=0;
    x=1;
    i=1;
   
    do{
        
    x=x*i;
    i=i+1;
    }
    while(i==n);
    
   do{
    wynik=wynik+x%10;
    x =x/10;
    while(x==0);
    
return n;
}

kompilator nie pokazuje żadnych błędów w skrypcie.

Pomoże mi ktoś i powie co jest zrobione źle?

2

Offtopic:
skrypt to np bash, perl, bat,
W C++ masz kod/program

On topic:

  1. to co wkleiłeś się nie kompiluje bo klamry nie są spraowane
  2. while(x==0); jest źle
  3. nie napisałeś co się źle dzieje
  4. nie napisałeś jaki jest zakres danych wejściowych
  5. polecam http://wandbox.org/
  6. polecam nauczyć się korzystać z debugger-a.
  7. źle sformatowałeś kod
  8. źle użyłeś znaczników kolorowania kodu. Pierwsza linia powinna wyglądać tak "```cpp", a twój kod w następnej linii.
0

Jak dla mnie to brakuje conajmniej jednego }

Jakbys odpowiednio formatowal kod, od razu bys to wychwycil....

0

Jeszcze taka rada na przyszłość, nazywaj zmienne po ludzku a nie x, i
Kod na silnie można zmieścić w 2 linijkach:

unsigned int sumOfFactorialDigits( unsigned short n )
{   
    for(int i=n; i>1; n *= --i);
    return n;
}

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