已有17人关注
进入死循环了 求师傅赐教
发表在C++图书答疑 2018-01-12 悬赏:1 学分 《C++从入门到精通(第3版)》第8章 构造数据类型
是否精华
版块置顶:

#include<stdio.h>

#include<stdlib.h>

struct Student 

{

  char cName[20];

  int iNumber;

  struct Student* pNext;

};

int iCount;

struct Student* Create()

{

  struct Student* pHead=NULL;

  struct Student* pEnd,*pNew;

  iCount=0;

  pEnd=pNew=(struct Student*)malloc(sizeof(struct Student));

  printf("首先输入姓名,然后输入学号\n");

  scanf("%s",&pNew->cName);

  scanf("%d",&pNew->iNumber);

  while(pNew->iNumber!=0)

  {

    iCount++;

if(iCount==1)

{

 pNew->pNext=pHead;

 pEnd=pNew;

 pHead=pNew;

}

else

{

 pNew->pNext=NULL;

 pEnd->pNext=pNew;

 pEnd=pNew;

}

    pNew=(struct Student*)malloc(sizeof(struct Student));

scanf("%s",&pNew->cName);

scanf("%d",&pNew->iNumber);

  }

free(pNew);

return pHead;

}

void Print(struct Student* pHead)

{

  struct Student* pTemp;

  int ilndex=1;

  printf("----这个链表中有%d个成员:---\n",iCount);

  printf("\n");

  pTemp=pHead;

  while(pTemp!=NULL)

  {

    printf("成员%d是:\n",ilndex);

printf("姓名:%s",pTemp->cName);

printf("学号:%d\n",pTemp->iNumber);

printf("\n");

pTemp->pNext;

ilndex++;

  }

}

struct Student* lnsert(struct Student* pHead)

{

   struct Student* pNew;

   printf("---首先插入一个成员---\n");

   pNew=(struct Student*)malloc(sizeof(struct Student));

   scanf("%s",&pNew->cName);

   scanf("%d",&pNew->iNumber);

   pNew->pNext=pHead;

   pHead=pNew;

   iCount++;

   return pHead;

}

void Delete(struct Student* pHead,int ilndex)

{

   int i;

   struct Student* pTemp;

   struct Student* pPre;

   pTemp=pHead;

   pPre=pTemp;

   printf("----删除第%d个成员----\n",ilndex);

   for(i=1;i<ilndex;i++)

   {

     pPre=pTemp;

     pTemp=pTemp->pNext;

   }

   pPre->pNext=pTemp->pNext;

   free(pTemp);

   iCount--;

}

int main()

{

  struct Student* pHead;

  pHead=Create();

  pHead=lnsert(pHead);

  Delete(pHead,2);

  Print(pHead);

  return 0;

}

IMG_20180112_140319.jpg

这是运行结果图,我这个运行输出插入以后回车就进入死循环了  一直重复我输入姓名和学号

分享到:
精彩评论 4
李木子
学分:2954 LV11
2018-01-16
沙发

你好:

  是书中的第八章的第几个代码

高运来
学分:1091 LV8
2018-01-16
板凳

李木子 发表于2018-01-16 13:56

你好:

  是书中的第八章的第几个代码

8.5.4链表相关操作,链表删除操作


李木子
学分:2954 LV11
2018-01-17
地板

高运来 发表于2018-01-16 20:16

8.5.4链表相关操作,链表删除操作


你好:

  有2处错误

 (1)在定义Print函数中while循环内,在最后一句ilndex++上缺一句代码

 (2)在定义Delect函数中,最后一句iCount--,你写成了iCount—


高运来
学分:1091 LV8
2018-01-17
4L

李木子 发表于2018-01-17 09:04

你好:

  有2处错误

 (1)在定义Print函数中while循环内,在最后一句ilndex++上缺一句代码

 (2)在定义Delect函数中,最后一句iCount--,你写成了iCount—


嗯嗯谢谢老师

首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照