الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]مشكلة في التوابع .. موضع return

بدأه sana11 في 11 أبريل 2013 · 2 رد · 639 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

لدي مشكلة بكود الفنكشن ويظهر أثناء التشغيل

هذي محاولتي للتصحيح :

 

#include <iostream>
using namespace std;
int Adding_Recursive2(int n)
{
if (n == 0) {cout << 0 ; return 0 ;}
else {
n + Adding_Recursive2(n-1)  ; return ;
cout << " " << n << " + "<<n ;
}
}

لكن ماضبط الكود 

وهذا الكود الأصلي:

int Adding_Recursive2(int n)
{
if (n == 0) {cout << 0 ; return 0 ;}
else {
return Adding_Recursive2(n-1) + n ;
cout << " " << n << " + " ;
}
}

أرجو الساعدة

#2

هناك خطأ في هذا السطر:

int Adding_Recursive2(int n)
{
    if (n == 0) {cout << 0 ; return 0 ;}
    else {
        return Adding_Recursive2(n-1) + n ;
        cout << " " << n << " + " ;  // هذا السطر مستحيل أن ينفذ، فالدالة وقتها خرجت
    }
}

تعديله:

#include <iostream>
using namespace std;

int Adding_Recursive2(int n)
{
    if( n == 0 ) {
        cout << 0 << endl;
        return 0;
    }

    cout << n << " + ";
    return Adding_Recursive2(n-1) + n ;
}

int main(int argc, char **argv)
{
    cout << Adding_Recursive2(3) << endl;

    return 0;
}
>a.exe3 + 2 + 1 + 06
#3

شكراً جزيلاً  

مواضيع مشابهة