נשלח בתאריך: 11 July 2005 בשעה 18:49 | | IP רשוּם
|
|
|
|
באמצעות הקצאה דינאמית, פונקציה זו בונה שרשרת מבנים. בכל מבנה נמצא: מספר, ערך העצרת המתאים לו ומצביע אל המבנה הבא.
, הפונקציה מקבלת מספר int - ומחזירה שרשרת מבנים המחזיקים את כל המספרים מ int ועד 1 - ולכל אחד את ערך העצרת שלו.
הפונקציה מחזירה מצביע אל השרשרת שבנתה. אם ההקצאה הדינאמית נכשלת באיזה שהוא שלב - על הפונקציה להחזיר NULL.
על הפונקציה להיות רקורסיבית. עולה... כי היא חייבת להתחיל את בניית השרשרת מהמבנה המכיל num - 1 וגם res - 1.
משהו יכול להסביר מה הכוונה מהפונקציה מחזירה בעצם?
ניסיתי להתחיל אותה:
קוד:
struct rec {
int num;
long int res;
struct rec * next;
};
typedef struct rec Rec;
Rec * build_factorial(int);
int main()
{
int number;
printf("Please insert a number >=1:");
scanf("%d",number);
if (number <= 0)
printf("Error - number too small!");
else
build_factorial(number);
Rec * build_factorial(number)
{
Rec *temp1;
Rec *temp2=first;
int index;
temp=(Rec*) calloc(1,sizeof(Rec));
if(!temp)
return NULL;
temp->res=index++;
...............................
if(first)
{
while(tmp->next)
tmp=tmp->next;
tmp->next=temp;
}
else first=temp;
return(first);
..............
|
|
|
|