c语言,见补充代码,图的深度优先遍历,请帮我找找代码错误

#include <stdio.h>
#include <stdlib.h>
int visit[100];
typedef enum {dg,dn,udg,udn}graphtype;
typedef struct
{
char vexs[100];
int arcs[100][100];
int n,e;
graphtype gtype;
}mgraph;
mgraph create(mgraph g,int n,int e,graphtype type)
{
int i,j,k;
char v;
g.n=n;g.e=e;g.gtype=type;
printf("context of vexs:");
for(i=0;i<n;i++)
{
scanf(" %c",&v);//add blank
g.vexs[i]=v;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
g.arcs[i][j]=0;
}
int gvalue;
for(k=0;k<e;k++)
{
printf("i,j,gvalue:");
scanf("%d%d%d",&i,&j,&gvalue);
g.arcs[i][j]=gvalue;
g.arcs[j][i]=gvalue;

}

}
void dfs(mgraph g,int v)
{
visit[v]=1;
printf("%c",g.vexs[v]);
int i;
for(i=0;i<g.n;i++)
if(visit[i]==0&&g.arcs[v][i]!=0)dfs(g,i);
}
void dfstraverse(mgraph g)
{
int v;
for(v=0;v<g.n;v++)
{
visit[v]=0;
}
for(v=0;v<g.n;v++)
{
if(visit[v]==0)dfs(g,v);
}
}
void show(mgraph g)
{
int i,j;
i=j=0;
printf("vexs:");
for(i=0;i<g.n;i++)printf("%c",g.vexs[i]);
printf("\n");
for(i=0;i<g.n;i++)
{
for(j=0;j<g.n;j++)
{
printf("%3d",g.arcs[i][j]);
}
printf("\n");
}
}
int main()
{
mgraph g;
int n,e;
printf("number of vexs:");
scanf("%d",&n);
printf("number of arcs:");
scanf("%d",&e);
g=create(g,n,e,udg);
show(g);
dfstraverse(g);
return 0;
}

create里面忘了return g,其余看起来没啥毛病
温馨提示:答案为网友推荐,仅供参考