标题:关于一个程序的两个问题,哪位大虾能帮帮忙啊?
只看楼主
supercn
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-1-27
 问题点数:0 回复次数:5 
关于一个程序的两个问题,哪位大虾能帮帮忙啊?

#include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct aa {int data; struct aa *next; }NODE; fun(NODE *h) {int max=-1; NODE *p; p=h; while(p) {if(p->data>max) max=p->dat; p=h->next; } return max; } outresult(int s,FILE *pf) {fprintf(pf,"\nThe max in link:%d\n",s);} NODE *creatlink(int n,int m) {NODE *h,*p,*s,*q; int i,x; h=p=(NODE*)malloc(sizeof(NODE));h->data=9999; for(i=1;i<=n;i++) {s=(NODE*)malloc(sizeof(NODE)); s->data=rand()%m;s->next=p->next; p->next=s; p=p->next; } p->next=NULL; return h; } outlink(NODE *h,FILE *pf) {NODE *p; p=p->next; fprintf(pf,"\nTHE LIST:\n\n HEAD"); while(p) {fprintf(pf,"->%d",p->data);p=p->next;} fprintf(pf,"\n"); main() {NODE *head;int m; clrscr(); head=creatlink(12,100); outlink(head,stdout); m=fun(head); printf("\nTHE RESULT:\n");outresult(m,stdout); }

1.在creatlink函数中,p->next还没有赋初值,却有“s->next=p->next;”,p->next指向谁还不确定啊? 2.主函数中,“ outlink(head,stdout);”,stdout是什么?如果是变量的话怎么还没有定义就使用了?

搜索更多相关主题的帖子: include return 
2005-08-05 23:25
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
得分:0 

下面回答楼主的问题: 1.在creatlink函数中, 令p->next =NULL, 具体位置请看我下面的程序. 2.stdout 代表标准输出,即是指显示器(屏幕).如果你不想用这个的话,请使用我程序中的printf(). //1.在creatlink函数中,p->next还没有赋初值,却有“s->next=p->next;”,p->next指向谁还不确定啊? //2.主函数中,“ outlink(head,stdout);”,stdout是什么?如果是变量的话怎么还没有定义就使用了?

#include <stdio.h> #include <stdlib.h>

typedef struct node { int data; struct node *next; }NODE;

int fun(NODE *h) { int max=-1; NODE *p; p=h; while(p) { if(p->data>max) max=p->data; p=p->next; } return max; }

void outresult(int s,FILE *pf) { //fprintf(pf,"\nThe max in link:%d\n",s); printf("\nThe max in link:%d\n",s); }

NODE *creatlink(int n,int m) { NODE *h,*p,*s; int i; h=p=(NODE*)malloc(sizeof(NODE)); p->next=NULL; h->data=9999; for(i=1;i<=n;i++) { s=(NODE*)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; } p->next=NULL; return h; }

void outlink(NODE *h,FILE *pf) { NODE *p; p=h; //fprintf(pf,"\nTHE LIST:\n\n HEAD"); printf("\nTHE LIST:\n\n HEAD"); while(p) { //fprintf(pf,"->%d",p->data); printf("->%d",p->data); p=p->next; } //fprintf(pf,"\n"); printf("\n"); }

void main() { NODE *head; int m; head=creatlink(12,100); outlink(head,stdout); m=fun(head); printf("\nTHE RESULT:\n"); outresult(m,stdout); }


Every thing is possible.
2005-08-06 00:29
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
得分:0 
不要忘了送我积分哦
 

Every thing is possible.
2005-08-06 00:30
Stayor
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2005-8-4
得分:0 
楼上的这么辛苦,一定要给积分啊。不能说话不算数哦。
2005-08-06 00:34
supercn
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-1-27
得分:0 
但原来的程序中没有“p-&gt;next=NULL",却一样可以运行,这是为什么啊?
2005-08-06 22:50
seeker
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2005-6-5
得分:0 
p-&gt;next默认为空

我相信总有一片天空属于我!http://myseeker. E-Mail:lwqcny@
2005-08-06 23:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-24472-1-1.html




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

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