|
|
|
|
# 1 |
|
הוסטסניון
|
רקורסיה שלא עובדת כראוי.
יש לי את הקוד הבא(מה התוכנית אמורה לעשות זה לא כ"כ משנה).
קוד:
for (int x=0;x<2;x++)
{
for (int y=0;y<2;y++)
{
for (int z=0;z<2;z++)
{
for (int n=0;n<2;n++)
{
cout << x << "," << y << "\n" << z << "," << n << "\n\n";
}
}
}
}
זאת התוכנית החדשה שלא עובדת. קוד:
void FunChe ()
{
b++;
if (b <= 4)
{
for (int a=0;a<2;a++)
{
for (int b=0;b<2;b++)
{
cout << b << "," << a << "," <<"\n";
FunChe();
}
}
}
}
תודה לעוזרים. |
|
|
|
# 2 |
|
חבר בקהילה
|
אממ , אתה מצהיר בכל לולאה על b מחדש, ואתה עוד מעלה אותו (b++) בהתחלת הריקורסיה..קצת מוזר לי..תצהיר עליו בחוץ
|
|
|
|
# 3 | |
|
הוסטסניון
|
ציטוט:
קוד:
int b=0;
void FunChe ()
{
b++;
if (b <= 4)
{
for (int a=0;a<2;a++)
{
for (int c=0;c<2;c++)
{
cout << a << "," << c << "," <<"\n";
FunChe();
}
}
}
}
|
|
|
|
|
# 4 | |
|
Авторитет
|
תנסה אם כבר:
PHP קוד:
__________________
![]() ציטוט:
|
|
|
|
|
# 5 |
|
חבר בקהילה
|
תצהיר על המשנה מונה בחוץ , כלומר בתחילת הCLASS..
|
|
|
|
# 6 |
|
הוסטסניון
|
תודה אפשר לנעול עזרו לי בפורום אחר.
|
|
|
|
# 7 |
|
חבר וותיק
|
סתם ככה לידע כללי, מקובל יותר להגדיר את b כפרמטר, ולא כמשתנה סטאטי.
מכוון שככה ניתן להשתמש במתודה בצורה חיצונית. |
|
|
|
# 8 |
|
חבר בקהילה
|
סתם הערה, כיום לא נפוץ השימוש בלולאות FOR ברקורסיה, אלה ב WHILE וכדומה, ככה לפחות באוניורסיטאות .. ולרמות קושי ..
כי בעצם הרקורסיה עושה את העבודה של הלולאות FOR לדוגמא רק בילדיהן ...
__________________
|
|
|
|
# 9 |
|
חבר בקהילה
|
אהלן,
אני רואה שכבר הסתדרת, אבל יחד עם זאת, אם כל מה שאתה רוצה זה להדפיס מספרים בינריים, סדרות בינריות או כל דבר שמכיל 0 או 1, הנה גרסא איטרטיבית: קוד:
#include <stdio.h>
void printBin(int digits)
{
int i = 0, j = 0;
printf(">> Running for %d digits, %d is the maximum number\n", digits, ( 1 << digits ) -1);
for (i = 0 ; i < ( 1 << digits ); i++)
{
//printf("%d: ", i);
for(j = digits - 1; j >= 0; j--)
{
printf("%d ", i & ( 1 << j ) ? 1:0 );
}
printf("\n");
}
}
int main()
{
int digits = 0;
printf("How many digits? ");
scanf("%d", &digits);
printBin(digits);
return 0;
}
קוד:
SDF@sigma:~> gcc test.c -o test SDF@sigma:~> ./test How many digits? 3 >> Running for 3 digits, 7 is the maximum number 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 SDF@sigma:~> מאיפה הבאת את זה? תראה לי דבר אחד שאתה יכול לעשות עם while שאני לא אוכל לעשות עם for. כל אחד ומה שנוח לו. Last edited by SDF; 10-10-08 at 00:18.. סיבה: באג בקוד |
|
![]() |
| חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|