大神们帮小弟我看看 是图的创建出有关问题了 还是图的输出出有关问题了 帮忙运行看看

大神们帮我看看 是图的创建出问题了 还是图的输出出问题了 帮忙运行看看 在线等
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct arcnode
{
//弧结点定义
int adjvex;//该弧所指的顶点信息
struct arcnode *next;//指向下一条弧


}arcnode;

typedef struct vnode //顶点结点
{
  char data; //顶点信息
arcnode *firstarc;//指向第一条依附该顶点的弧


   

}vernode ;
typedef vernode adjlist[100];

//图的结构定义
typedef struct 
{
  adjlist ver;
  int vernum,arcnum;

}graph;

int location(graph &g,char c)//查找元素的位置
{
   
for(int i=0;i<g.vernum;i++)
if(g.ver[i].data==c)
return i;
else
return -1;
}



void create(graph &g)//创建无向图
{
int i,j,k;
char v1,v2;
int temp;
  printf("请输入图的顶点和弧数:\n");
scanf("%d%d",&g.vernum,&g.arcnum);
temp=getchar();
printf("输入%d顶点\n",g.vernum);
for(i=0;i<g.vernum;i++)
{
printf("输入第%d顶点",i+1);
scanf("%c",&g.ver[i].data);
temp=getchar();

g.ver[i].firstarc=NULL;//边表置空
}
  //建立边
printf("输入弧的信息\n");
printf("输入%d条弧",g.arcnum);
printf("\n");
for(k=0;k<g.arcnum;k++)
{
  printf("输入第%d条弧",k+1);
scanf("%c%c",&v1,&v2);//输入表示弧<vi,vj>的顶点序
i=location(g,v1);
j=location(g,v2);
temp=getchar();
arcnode *p1;
p1=(arcnode *)malloc(sizeof(arcnode));//生成边表结点
p1->adjvex=j; //邻结点信息
p1->next=g.ver[i].firstarc;
g.ver[i].firstarc=p1;//将新结点插入到边表头部
   



}
printf("有向图建立完成\n");



}


/*------------------------------输出图的信息-------------------*/
void printGra(graph g)
{
 arcnode *p;
 int i;
  printf("图中有%d个顶点,%d条弧:\n",g.vernum,g.arcnum);
  for(i=0;i<g.vernum;i++)
  {

  p=g.ver[i].firstarc;
  printf("%c\n",g.ver[i].data);
  while(p)
  {

  printf("<%c,%c>",g.ver[i].data,g.ver[p->adjvex].data);
  p=p->next; 
  }
  printf("\n");
  }
}

void main()
{
int i;
graph g;
create(g);
printGra(g);
printf("\n");
}



------解决方案--------------------
什么错误提示呀
------解决方案--------------------
书上的,应该没问题
------解决方案--------------------
我试了没问题啊!~
------解决方案--------------------
是不是你测试时 输入有问题啊!