代碼在Turboc++3.0環境下運行正常,但是在vs環境下能編譯成功,但輸入資料有點問題。
紅色部分修改後,代碼在vs下也ok了。但是為什麼修改前在Turboc++3.0環境下運行正常呢?
#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
typedef struct node LNKLIST;
struct node
{
int data;
LNKLIST *next;
};
int main(void)
{
LNKLIST *start = NULL,*p,*q,*temp;
char opt;
do
{
printf("/n/t/t Menu"
"/n/t 1. Create/Append Linked List"
"/n/t 2. Reverse Linked List"
"/n/t 3. Display Linked List"
"/n/t 4. Exit"
"/n Enter your choice:"
);
opt = getchar();
flushall();
switch(opt)
{
case '1':
do
{
p = start;
while (p != NULL && p->next != NULL) /*修改前while(p->next != NULL)*/
{
p = p->next;
}
q = (LNKLIST*)malloc(sizeof(LNKLIST));
printf("/nEnter the data: ");
scanf("%d",&q->data);
q->next = NULL;
if(start == NULL)
start = q;
else
p->next = q;
printf("Wanna continue? ");
} while (tolower(getchar())== 'y');
break;
case '2':
p = start;
q = p->next;
while(q!=NULL)
{
temp = q->next;
q->next = p;
p = q;
q = temp;
}
start->next = NULL;
start = p;
break;
case '3':
p = start;
printf("/nstart = %u ",start);
while(p!=NULL)
{
printf("-> [%d | %u]",p->data,p->next);
p = p->next;
}
getchar();
}
} while (opt != '4');
printf("/nsuccess/n");
return 0;
}