این برنامه درسته؟

lighting

Member
سلام
برنامه زیر رو نوشتم ولی ارور میده کدوم قسمتش اشتباهه؟
برنامه ای بنویسید که مجموع100 جمله ی دنباله ی زیر رو حساب کند
1,1,1,3,5,9,17
کد:
#include <iostream.h>
#include <conio>
int superfib(int n)
{
if((n==1)||(n==2)||(n==3))
return 1;
else
return superfib(n-3)+superfib(n-2)+superfib(n-1);
}
int main()
{
int a,sum=0;
for(int i=0;i<=100;i++)
sum+=superfib(a);
cout<<sum;
getch();
return 0;
}
 

the_king

مدیرکل انجمن
سلام
برنامه زیر رو نوشتم ولی ارور میده کدوم قسمتش اشتباهه؟
برنامه ای بنویسید که مجموع100 جمله ی دنباله ی زیر رو حساب کند
1,1,1,3,5,9,17
کد:
#include <iostream.h>
#include <conio>
int superfib(int n)
{
if((n==1)||(n==2)||(n==3))
return 1;
else
return superfib(n-3)+superfib(n-2)+superfib(n-1);
}
int main()
{
int a,sum=0;
for(int i=0;i<=100;i++)
sum+=superfib(a);
cout<<sum;
getch();
return 0;
}

ایراد مربوط به حلقه for است.
شما مقدار i رو از 0 الی 100 پیمایش می کنید و داخل حلقه محاسبه رو با a انجام می دهید که هیچ ربطی
به i و مقدار حلقه ندارد :
کد:
	for (int i = 0; i <= 100; i++)
		sum += superfib(a);
شما می بایستی i را بجای 0 از 1 شروع کنید چون در تابع superfib تان (0)superfib اصلا تعریف نشده.
کد:
	for (int i = 1; i <= 100; i++)

در ضمن باید برای فراخوانی کردن تابع superfib بجای a از i استفاده کنید :
کد:
		sum += superfib(i);
 

جدیدترین ارسال ها

بالا