12-09-2008, 14:07
|
|
|
חבר מתאריך: 10.09.08
הודעות: 20
|
|
אח שלי ממתי צריך לשמור כתובת התחלתית במשתנה כאשר ניתן לקבל את הכתובת ע"י אתחול המצביע במערך הכתובות אני באמת חושב שהמשימה אליה אתה מכוון היא ניתנת לפתרון רק בעזרת רקורסיה
אני אנסה לעזור בכך שאתן לך הסבר כללי ותמשיך משם
הפתרון לשאלה כמו שלך הוא תחילה להסתכל על קוד הבנוי בצורה רגילה :
#include<stdio.h>
#include<conio.h>
void main()
{
int vec[100];
int *p,counter;
counter=100;
p=&vec[1];
int increment=0;
for(increment=1;increment<=100;increment++)
{
vec[increment]=increment;
}
while(counter)
{
printf("%d ",*p);
p++;
counter--;
}
}
כעת אנחנו רוצים להפוך את הקוד הזה לרקורסיה שתבצע את אותו הדבר נתחיל משורת הפונקציה שהיא תהיה הלולאה שלנו:
נניח : int count(int vec[],size,*P)
כאשר המצביע מקבל את הכתובת ההתחלתית בדרך הבאה:
P=&vec[0]
תמשיך מכאן...
|