עבור לתוכן

שאלה ברקורסיה -שפת C

Featured Replies

פורסם

התרגיל הוא כזה

לצייר מין דגל כזה באופן הבא.


*****
****
***
**
*
*
**
***
****
*****


וגם הפוך כלומר להתחיל מכוכבית אחד ולעצור בN

הבעייה שלי שאני לא יודע איך להפוך את התנאי עצירה

הנה מה שעשיתי עבור הדגל הראשון


void flag(int n)
{
int i;
if (n<1)
return;
for (i=0; i<n; i++)
{
putchar('*');
putchar(' ');
]
putchar(‘\n’);
flag(n-1);
for (i=0; i<n; i++)
{
putchar('*');
putchar(' ');
}
putchar(‘\n’);
}

}

פורסם

קודם כל הוספתי פונקציה שנקראת Print שהיא תקבל מספר N ותדפיק את כמות ה-* שאתה רוצה.

- הפונקציה flag1 זה הפיתרון לתרגיל הראשון שלך מה שהצגת לנו.

- הפונקציה flag2 זה הפיתרון השני שאתה צריך.

void print(int n)
{
for(int i=0; i<n ; i++)
{
putchar('*');
}
putchar('\n');
}
void flag1(int n)
{
if(n==0)
{
return;
}
else
{
print(n);
flag(n-1);
print(n);
}
}
void flag2(int n)
{
if(n==0)
{
return;
}
else
{
flag(n-1);
print(n);
print(n);
flag(n-1);
}
}

פורסם
  • מחבר

לא נראה לי שזה נכון

ובכלל שקראת ל FLAG בפונקציות

התכוונת למה שאני עשיתי או למשהו אחר?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים