Witam. Proszę o poprawienie mojego programiku. Jestem początkujący więc proszę o wyrozumiałość. Chodzi o program który wczytuje podaną wartość przez użytkownika i podaje jego silnie. Napisałem coś takiego:
#include
#include
#include
using namespace std;
int main()
{
int silnia(int n);
int w;
printf("Podaj liczbe calkowita dodatnia: ");
scanf("%d",&n);
if(n==1|n==0)
{
printf("Wynik wynosi 1");
}
if(n<0)
{
printf("podales zla liczbe");
}
else
for(n=1;n
{
w=n*silnia(n-1);
printf("%d",w);
}
getch();
}
Deklarujesz funkcję silnia, a gdzie jej definicja?
for(n=1;silnia*=n;n++)
W tej linijce mnożysz adres ( miejsce gdzie w pamięci się funkcja znajduje ) funkcji przez wartość ze zmiennej n. To sensu nie ma, szczególnie w tym przypadku Ostatnie linijki programu powinny wyglądać tak:
#include
#include
int main(int argc, char *argv[])
{int i=1,n=0,d[10000],p=0,m;
for (n=0;n<10001;n++)
d[n]=0;
d[0]=1;
printf("Z jakiej liczby chcesz policzyc silnie:");
scanf("%d",&m);
while (i
{
for (n=0;n<10000;n++)
{d[n]=d[n]*i;}
for (n=0;n<10000;n++)
{
if (d[n]>9)
{
p=(d[n]-d[n]%10)/10;
d[n]=d[n]%10;
d[n+1]=d[n+1]+p;}}
i++;}
printf("%d!=",m);
for (n=10000;n>-1;n--)
{ if (d[n]!=0)
break;}
for(n;n>-1;n--)
printf("%d",d[n]);
printf("\n");
system("PAUSE");
return 0;
}