为什么用数据结构栈的“后进先出”特性写的逆转代码,会出现最后数字打印2次
#include <stdio.h>#include "sqstack.h"
int main (int argc,char *argv[])
{
SqStack sta;
int score[8]={1,2,3,4,5,6,7,8};
InitStack(&sta);
int i;
for(i=0;i<8;i++)
{
if(!Push(&sta,score[i]))
{
printf("系统错误!\n");
return 0;
}
printf("%d\t",score[i]);
}
printf("\n");
printf("逆转后的序列:\n");
/* for(i=0;i<8;i++)
{ Pop(&sta,&score[i]);
printf("%d\t",score[i]);
}
*/
while(!StackEmpty(sta))
{
if(!Pop(&sta,&score[i]))
{
printf("系统错误!\n");
return 0;
}
printf("%d\t",score[i]);
}
return 1;
}
结果如下:
1 2 3 4 5 6 7 8
逆转后的序列:
8 7 6 5 4 3 2 2
--------------------------------
Process exited after 0.1426 seconds with return value 1
请按任意键继续. . .
[此贴子已经被作者于2016-3-15 22:36编辑过]