一個鏈表建立、反轉、列印的C語言代碼

來源:互聯網
上載者:User

代碼在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;
}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.