0

我正在为一个要求用户输入数字的程序而苦苦挣扎,如果用户输入它只会停止要求用户输入数字0

但是我似乎无法将输入的第二个数字的值放入Data2,

我们如何将数字推送到用户输入的数字中,data然后data2将其汇总 Data + data2 并打印 sum ?

例如,用户输入1,2,0

4

2 回答 2

2

您遇到的问题是输入,而不是列表。

尝试输入1 2 0而不是1,2,0,你会发现它工作得很好。(你不会得到输出1 + 2 = 3,因为那不是你输出的。相反,你得到The sum of Popped item is 3.

while ( Num !=0)顺便说一句,在初始化之前第一次出现使用 Num 。如果该值恰好为 0,则程序将无法运行。尝试在to beint Num;的顶部更改main()int Num=99;

于 2013-07-24T13:28:21.307 回答
0

push使用单个调用该函数num,它被存储到NewNode两次,而不是第二个整数。

您必须使用push整数data1调用data2

while (1)
{
        scanf("%d", &Num1);
        scanf("%d", &Num2);
        if (num1 == 0 || num2 == 0)
              break;
        Push(Top, Num1,num2); //execute the Push Function

}

而里面push

void Push(StackPointer &Top, int Num1,int num2)
{ 
 StackPointer NewNode;
 NewNode=(StackPointer)malloc(sizeof(struct Node));
 NewNode->Data = Num1;
 NewNode->Data2 =Num2;
 NewNode->Link = Top;
 Top = NewNode;
}
于 2013-07-24T13:24:38.517 回答