برنامه ای بنویسید که تابع فاکتوریل را پیاده سازی کند

برنامه ای بنویسید که تابع فاکتوریل را پیاده سازی کند

برنامه ای بنویسید که تابع فاکتوریل را پیاده سازی می کند. همین طور مشخص کنید که چه مقدار از n باعث سرریز شدن تابع می شود.

#include<iostream>
using namespace std;
int fact(int);

int main()
{
	int a;
	cout<<"enter integer:";
	cin>>a;
	cout<<fact(a);
	return 0;
}
//end of main
int fact(int n)
{
	int f=1;
	for (int i=1;i<=n;i++)
	f *=i;
	return f;
}

موقع کامپایل خطای was not declared in this scope میداد. اگه فهمیدید چرا؟

این خطا به این معنی هست که تابع یا متغیری استفاده شده که تعریف نشده. من برنامه رو به شکل زیر نوشته بودم:

#include<iostream>
using namespace std;


int main()
{
	int a;
	cout<<"enter integer:";
	cin>>a;
	cout<<fact(a);
	return 0;
}
//end of main
int fact(int n)
{
	int f=1;
	for (int i=1;i<=n;i++)
	f *=i;
	return f;
}

یعنی قبل از تابع main تابع fact رو تعریف نکرده بودم. با توجه به اینکه کد تابع fact پس از تابع main نوشته شده بنابراین لازم هست تابع fact قبل از تابع main تعریف بشه. اگه کد تابع fact قبل از تابع main نوشته میشد این خطا رو نمیداد اما تونستیم با تعریف کردنش قبل از تابع اصلی خطا رو برطرف کنیم.

حالا اسکرین شات اجرامون رو ببینید:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *