转自CSDN用户:sinoshen题目内容:你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束。然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1。 输入格式:一系列正整数,输入-1表示结束,-1不是输入的数据的一部分。 输出格式:按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格。 输入样例:1 2 3 4 -1 输出样例:4 3 2 1 解法如下:有人能解释一下吗?看不太懂#include<stdio.h>#include<stdlib.h>typedef struct node{ int value; struct node* next; struct node* pre;}Node; typedef struct _list{ Node* head; Node* tail;}List; void add(List* plist,int num){ Node* p=(Node*)malloc(sizeof(Node)); p->value=num; p->next=NULL; if(plist->head==NULL){ plist->head=p; plist->tail=p; plist->tail->pre=NULL; } else{ p->pre=plist->tail; plist->tail->next=p; plist->tail=plist->tail->next; }} int main(void){ int num; List list; list.head=NULL; list.tail=NULL; do{ scanf("%d",&num); if(num!=-1){ add(&list,num); } }while(num!=-1); while(list.tail){ printf("%d ",list.tail->value); list.tail=list.tail->pre; } return 0;}