Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
problem z silnią
Autor Wiadomość
banancorp Offline
Początkujący
*
Użytkownik

Liczba postów: 1
Dołączył: Dec 2010
Reputacja: 0
€: 4
OS: Windows 7
Post: #1
problem z silnią
#include "stdafx.h"

int silnia(int n,int i)
{
int a;
a=1;
for(i=0;i<n+1;i++)
{
a=a*1;
}
return a;
}

int _tmain(int argc, _TCHAR* argv[])
{
int a,n;
printf("podaj z ilu ma byc silnia: ");
scanf("%i",&a);
n=silnia(a);
printf("silnia= ",&n);

return 0;
}

___
nie wiem co tu może być nie tak mógłby ktoś pomóc?
10.12.2010 13:21
  Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post


Propagandi Offline
Początkujący
*
Użytkownik

Liczba postów: 91
Dołączył: Mar 2010
Reputacja: 8
€: 100
OS:
Post: #2
RE: problem z silnią
W funkcji liczącej silnie wystarczy jeden argument. Dalej można to rozwiązać np tak:

Kod:
int silnia(int a)
{
    for(int i=a-1;i>1;i--)
    {
        a=a*i;
    }
    return a;
}

Wtedy powiedzmy dla argumentu równego 5 w pierwszym kroku pętli do zmiennej "a" przypisujesz wynik 5*4, w kolejnych 20*3 i 60*2.

W funkcji main jak wyświetlasz zmienną z wynikiem za pomocą printf, to musisz ją w pierwszym parametrze uwzględnić:

Kod:
    n=silnia(a);
    printf("silnia= %i", n);

Przed zmienną n w printf nie może być znaku &, bo wtedy funkcja nie wyświetla wartości, tylko adres komórki pamięci gdzie ta zmienna jest przechowywana. W to scanf to będzie poprawne.
10.12.2010 19:23
  Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 3 gości

 Wybierz styl: