| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 683 人关注过本帖
标题:谁能找到下面的程序什么地方错了!
只看楼主 加入收藏
叶赫娜拉
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-30
收藏
 问题点数:0 回复次数:9 
谁能找到下面的程序什么地方错了!

#include<stdio.h>
#include<stdlib.h>
typedef struct QNOde{
int data;
struct QNOde *next;
}QNode,*QueueList;

void EnQueue(QueueList *head,QueueList *tail,int value);
void Print(QueueList head);

int main()
{
QueueList head=NULL,tail=NULL;
int i,n,value;

printf("Please input node n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&value);
EnQueue(&head,&tail,value);
}
Print(headPtr);

return 0;
}

void EnQueue(QueueList *head,QueueList *tail,int value)
{
QueueList new;

if((new=(QueueList)malloc(sizeof(QNode)))==NULL)
{
exit(1);
}
newPtr->data=value;
newPtr->next=NULL;
if(*head==NULL)
{
new->next=*head;
*head=new;
}
else
(*tail)->next=new;
*tail=new;
}

void Print(QueueList head)
{
while(head)
{
printf("%d->",head->data);
head=head->next;
}
printf("null\n\n");
}

搜索更多相关主题的帖子: return 
2006-03-30 13:09
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
仔细对照(完全按你的思路改的),你是男女?是女的我下次就不回答了
[CODE]

#include<stdio.h>
#include<stdlib.h>
typedef struct QNOde {
int data;
struct QNOde *next;
}QNode,*QueueList;

void EnQueue(QueueList *head,QueueList *tail,int value);
void Print(QueueList head);

int main()
{
QueueList head=NULL,tail=NULL;
int i,n,value;

printf("Please input node n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&value);
EnQueue(&head,&tail,value);
}
Print(head);
getch();
return 0;
}

void EnQueue(QueueList *head,QueueList *tail,int value)
{
QueueList newPtr;

if( (newPtr =(QueueList)malloc(sizeof(QNode)))==NULL )
{
exit(1);
}
newPtr->data=value;
newPtr->next=NULL;
if(*head==NULL)
{
newPtr->next=*head;
*tail=*head=newPtr; /*首尾要有联系*/
}
else
{
(*tail)->next=newPtr;
*tail=newPtr;
}
}

void Print(QueueList head)
{
while(head)
{
printf("%d->",head->data);
head=head->next;
}
printf("null\n\n");
}


[/CODE]

[此贴子已经被作者于2006-3-30 15:31:34编辑过]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-30 15:05
success
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-24
收藏
得分:0 
楼主的名字挺有意思,和慈喜一个姓氏,我是驽尔哈赤;

1。首先说二楼的程序有问题,好好看看,函数无返回值,你返回了。
2。楼主的程序错误很简单,new是C++中的关键字,你肯定用的是VC,只要把new该成newPtr就可以了,VC情况下用错new关键字,将会出现102条错误信息。

以上是我的分析,正确与否,请指教

2006-03-30 15:28
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用success在2006-3-30 15:28:00的发言:
楼主的名字挺有意思,和慈喜一个姓氏,我是驽尔哈赤;

1。首先说二楼的程序有问题,好好看看,函数无返回值,你返回了。
2。楼主的程序错误很简单,new是C++中的关键字,你肯定用的是VC,只要把new该成newPtr就可以了,VC情况下用错new关键字,将会出现102条错误信息。

以上是我的分析,正确与否,请指教

楼主很多细小错误,而且使用了关键字.一会new 一会 newPtr

最主要问题是首尾失去联系


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-30 15:34
success
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-24
收藏
得分:0 

楼主的程序没有失去联系,下面是我帮楼主改的:
#include<stdio.h>
#include<stdlib.h>
typedef struct QNOde{
char data;
struct QNOde *next;
}QNode,*QueueList;

void EnQueue(QueueList &headPtr,QueueList &tailPtr,char ch);
void Print(QueueList headPtr);

int main()
{
QueueList headPtr=NULL,tailPtr=NULL;
char ch;
int i,n;

printf("Please input node number: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf(" %c",&ch);
EnQueue(headPtr,tailPtr,ch);
}
Print(headPtr);

return 0;
}

void EnQueue(QueueList &headPtr,QueueList &tailPtr,char ch)
{
QueueList newPtr;

if((newPtr=(QueueList)malloc(sizeof(QNode)))==NULL)
{
exit(1);
}
newPtr->data=ch;
newPtr->next=NULL;
if(headPtr==NULL)
{
newPtr->next=headPtr;
headPtr=newPtr;
}
else
tailPtr->next=newPtr;
tailPtr=newPtr;
}

void Print(QueueList headPtr)
{
while(headPtr)
{
printf("%c->",headPtr->data);
headPtr=headPtr->next;
}
printf("null\n");
}
请指教


2006-03-30 15:36
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

我加了个{} 把楼主意思曲解了
不过楼上程序也不对


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-30 15:42
success
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-24
收藏
得分:0 
以下是引用success在2006-3-30 15:36:00的发言:

楼主的程序没有失去联系,下面是我帮楼主改的:
#include<stdio.h>
#include<stdlib.h>
typedef struct QNOde{
char data;
struct QNOde *next;
}QNode,*QueueList;

void EnQueue(QueueList &headPtr,QueueList &tailPtr,char ch);
void Print(QueueList headPtr);

int main()
{
QueueList headPtr=NULL,tailPtr=NULL;
char ch;
int i,n;

printf("Please input node number: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf(" %c",&ch);
EnQueue(headPtr,tailPtr,ch);
}
Print(headPtr);

return 0;
}

void EnQueue(QueueList &headPtr,QueueList &tailPtr,char ch)
{
QueueList newPtr;

if((newPtr=(QueueList)malloc(sizeof(QNode)))==NULL)
{
exit(1);
}
newPtr->data=ch;
newPtr->next=NULL;
if(headPtr==NULL)
{
newPtr->next=headPtr;
headPtr=newPtr;
}
else
tailPtr->next=newPtr;
tailPtr=newPtr;
}

void Print(QueueList headPtr)
{
while(headPtr)
{
printf("%c->",headPtr->data);
headPtr=headPtr->next;
}
printf("null\n");
}
请指教

忘记说了,以上程序用VC,TC可能出错,我用的引用方式


2006-03-30 15:48
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
这在C里是不允许的 ,当然C++可以

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-30 15:50
叶赫娜拉
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-30
收藏
得分:0 
谢谢楼上两位高人帮助

千秋霸业,百战成功,边声四起唱大风 一马奔腾,射雕引弓,天地都在我心中
2006-03-30 21:23
风之语录
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-3-15
收藏
得分:0 

//无头结点的单链表基本操作
#include<stdio.h>
#include<stdlib.h>
typedef struct QNode
{
int data;
struct QNode *next;
}QNode,*QueueList;

void EnQueue(QueueList *head,QueueList *tail,int value);
void Print(QueueList head);

int main()
{
QueueList head=NULL,tail=NULL;
int i,n,value;

printf("Please input node n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&value);//输入数据元素
EnQueue(&head,&tail,value);//输入无头结点单链表
}
Print(head);//打印

return 0;
}

void EnQueue(QueueList *head,QueueList *tail,int value)
{//输入无头结点单链表
QueueList newbase;

if((newbase=(QueueList)malloc(sizeof(QNode)))==NULL)
exit(1);//新建头结点并判断是否建立成功
newbase->data=value;
newbase->next=NULL;
if(*head==NULL)
{

newbase->next=*head;
*head=newbase;
}
else
(*tail)->next=newbase;
*tail=newbase;
}

void Print(QueueList head)
{//打印
while(head)
{
printf("%d->",head->data);
head=head->next;
}
printf("null\n\n");
}


2006-03-31 11:26
快速回复:谁能找到下面的程序什么地方错了!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved