شما حالت کلی برنامه رو اشتباه نوشته ایدنقل قول:
شما دو متغیر به نام های x , y تعریف کرده اید و بدون اینکه به انها مقداری بدهید x را به تابع ارسال نموده اید
بعد در زمان تعریف تایع یک بار a را تعریف کرده اید اما دوباره همان متغیر a رو در خط بعد تعریف کرده اید
اگر بخواهید از طریق for حلقه ایجاد کنید باید خود عدد دریافتی رو هم در عملیات فاکتوریل شرکت دهید منظورم رو با مثال توضیح میدهم
شما نوشته اید
[PHP]scanf("%d",&a);
for(i=1;i<a;i++)
fact=fact*i;
[/PHP]
خوب اگر شما 5 رو وارد کنید حلقه این کار رو انجام میدهد
4*3*2*1اما خود عدد 5 در محاسبات نمی اید به این دلیل که شما در حلقه for این شرط را قرار داده اید
شما باید به این صورت مینوشتید که
[PHP]scanf("%d",&a);
for(i=1;i<=a;i++)
fact=fact*i;
[/PHP]
حال با گذاشتن یک علامت مساوی در شرط حلقه for عدد 5 نیز در محاسبات فاکتوریل در نظر گرفته میشود
اگر باز هم متوجه نشدید بفرمائید به روش دیگه ای توضیح میدهم