那位大侠帮我看看这段代码呀。是和图有关的。谢谢了

ywchen2000 2003-05-18 11:44:52
那位大侠帮我看看这段代码呀。是和图有关的。谢谢了

#include<stdio.h>
#define vnum 20
typedef struct arc
{int ad;
struct arc *next;
}arcn;

typedef struct ve
{int vex;
arcn *fir;
}adj[vnum];

typedef struct gra
{
adj adjl;
int vexnn,arcnn;
}gr;

void createtu(gr *g) //建立一个图
{int n,e,i,j,k;
arcn *p;
printf("ding dian shu he bian shu:");
scanf("%d %d",&n,&e);
g->vexnn=n;
g->arcnn=e;
for(i=0;i<n;i++)
{
g->adjl[i].vex=i;
g->adjl[i].fir=NULL;
}
for(k=0;k<e;k++)
{
printf("i,j=??");
scanf("%d,%d",&i,&j);
p=(arcn *)malloc(sizeof(arcn));
if(p==NULL)
{
printf("error");
exit(0);
}
p->ad=j;
p->next=g->adjl[i].fir;
g->adjl[i].fir=p;
}
}
void disp(gr *g) //显示图
{
int i,ha;
arcn *p;
for(i=0;i<g->vexnn;i++)
{p=g->adjl[i].fir;
ha=0;
while(p!=NULL)
{printf("(%d,%d)",i,p->ad);
p=p->next;
ha=1;}
if(ha==1)printf("\n");
}
}
main()
{
gr g;
createtu(&g);
disp(&g);
}

运行结果:
ding dian shu he bian shu:3 3
i,j=?? 0 1
i,j=??i,j=??0 2
输出一个乱结果而且scanf()少运行了一次。
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lymgf 2003-05-19
  • 打赏
  • 举报
回复
scanf的问题:

将scanf("%d,%d",&i,&j)引号内的,号曲调,或输入时用,号分隔两个数字。

记住scanf是严格遵守你订制的输入格式的,就像输出函数printf一样。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧