我正在努力解决一个要求用户输入数字的程序,如果用户输入0
,它只会停止要求用户输入数字。
但是我似乎无法将输入的第二个数字的值放在Data2
,
我们如何通过输入的用户号码将号码推入data
和data2
,然后将其总结为数据+数据2和打印总和?
例如,用户输入1,2,0
答案 0 :(得分:2)
问题在于输入,而不是列表。
尝试输入1 2 0
而非1,2,0
,您会发现它运作正常。 (您不会得到输出1 + 2 = 3
,因为这不是您输出的内容。而是获得The sum of Popped item is 3
。
BTW,while ( Num !=0)
的第一次出现在初始化之前使用Num。如果值恰好为0,则程序将无法运行。尝试将int Num;
顶部的main()
更改为int Num=99;
答案 1 :(得分: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;
}