鱼C论坛

 找回密码
 立即注册
查看: 2432|回复: 0

请大家帮我运行下这个程序 !

 关闭 [复制链接]
发表于 2012-3-24 23:35:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 /鸡蛋饼. 于 2012-3-24 23:43 编辑

麻烦大家帮我运行下 这个程序 !在我机器上运行的时候 红色字体循环部分 在第一次循环的时候,调用函数自动赋值为空
这里我用printf输出了  I的值的变化   请大家帮帮忙! 各种循环我都用过 结果还是一样  !
/*File :List--datastruct
*--------------------
* 熟练掌握定义新的类型以及使用
*/
/*Data Struct*/
typedef char* string;
typedef struct
{
string name;
struct node *next;
}node,*pNode;
typedef struct
{
int nodenum;
struct node *base;
}list,*pList;
#include <stdio.h>
#include <malloc.h>
#include <string.h>
/*Function Declaration*/
static void traversal(pList list);
static pList CreatList(void);
static char *Gmalloc (void);
static pList ListInsert(pList list);

/*Main program*/
int main (void)
{
int i=0;
int n;
pList list;
list = CreatList();

printf("请输入您要增加的节点各数\n");
scanf("%d",&n);
printf("---------\n");
printf("开始读入新的节点数据\n");
do
{
  printf("i = %d\n",i);
  ListInsert(list);
  i++;
}while(i<n);


printf("链表有效节点数为:%d\n",list->nodenum);
traversal(list);
return 0;
}
/*Function*/
static pList CreatList(void)
{
pList list;
pNode node;
list = (pList)malloc(sizeof *list);
node = (pNode)malloc(sizeof *node);
if(!list)
{
  printf("分配内存失败");
}
if(!node)
{
  printf("分配内存失败");
}
list->nodenum = 0;
while(node)
{
  printf("下面对第一个节点进行输入:\n");
  node->name = Gmalloc();
  node->next = NULL;
  list->base = node;
  list->nodenum++;
  if(list->base)
   break;
}
return (list);
}
static pList ListInsert(pList list)
{
pNode phead;
pNode temp;
temp = list->base;//引用直接的物理内存?
phead = (pNode)malloc(sizeof *phead);
if(!phead)
{
  printf("节点分配内存失败");
}

phead->name = Gmalloc();
phead->next = temp;

temp = phead;
list->base = temp;
list->nodenum++;
}
static char *Gmalloc (void)
{
char* pTemp;
char Temp[88];
gets(Temp);
pTemp = (char *)malloc(strlen(Temp));
strcpy(pTemp,Temp);
return pTemp;
}
static void traversal(pList list)
{
pNode temp;
temp = list->base;

while(temp!=NULL)
{
  printf("遍历第%d个节点",list->nodenum-1);
  printf("%s\n",temp->name);
  temp =  temp->next;
  list->nodenum--;
}

}

小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-12 09:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表