29-01-2006, 22:35
|
|
|
חבר מתאריך: 22.01.06
הודעות: 11
|
|
מועד ההגשה מתקרב ועדיין אני לא מסתדרת (C)-צירפתי קוד
אוקי, אז תקציר של מה שהתוכנית צריכה לעשות.
היא מקבלת מספרים, לצורך העיניין (מה שעשיתי עד עכשיו) 1, 2 או 11.
ככה שכל מסםפר אחר היא מדפיסה ERROR , 11 היא יוצאת מהתוכנית.
1 היא מוסיפה מחסנית למאגר ו2 היא מוסיפה מילה למחסנית מסויימת.
הנה הקוד:
קוד:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char ***pppchar;
int ***words;
int num;
int main()
{
int num_of_stacks=0, stack;
int M;
scanf("%d", &num);
while ((num!=1) && (num!=11))
{
printf("error\n");
scanf("%d", &num);
}
if(num!=11)
{
pppchar=(char***)malloc(sizeof(char**));
num_of_stacks=1;
words=(int***)malloc(sizeof(int**));
words[0]=0;
}
while (num!=11)
{
switch(num)
{
case 1:
{
*(pppchar+num_of_stacks-1)=(char**)realloc(*(pppchar+num_of_stacks-1),(num_of_stacks+1)*sizeof(char*));
*(words+num_of_stacks-1)=(int**)realloc(*(words+num_of_stacks-1), (num_of_stacks+1)*sizeof(int*));
words[num_of_stacks]=0;
num_of_stacks++;
break;
}
case 2:
{
scanf("%d", &stack);
if (stack>num_of_stacks)
printf("error\n");
else
{
M=words[stack];
*(pppchar+stack-1)=(char**)realloc(*(pppchar+stack-1),(M+1)*sizeof(char*));
words[stack]++;
}
break;
}
default:
{
printf("error\n");
break;
}
}
scanf("%d", &num);
}
return 0;
}
הבעיה היא שהוא מראה אזהרה לא ברורה לי.. וכשמריצים את התוכנית, אם מקלידים 1, זה נתקע.
מישהו יכול לעזור לי?
תודה תודה תודה !
אתי
|