为什么输出顶点个数会少一个?图的邻接矩阵

关于以图的领接矩阵作为存储结构为什么我输入完顶点之后,输出的顶点会少一个?请指教,谢谢

img

#include 
#include 
#define maxint 32767
#define mvnum 100
#define OK 1
#define ERROW 0
#define OVERFLOW -1
typedef struct //领接矩阵存储结构 
{char vexs[mvnum];//顶点 
int  arcs[mvnum][mvnum];//领接矩阵 
int vexnum,arcnum;//记录当前顶点数与边数 
}AMGraph;

//领接矩阵的存储结构:
int InitG(AMGraph &G)      //初始化顶点、边为0 
{G.vexnum=0;
G.arcnum=0;

return OK;
}
void InsertVex1(AMGraph &G,char v)  //输入函数 
{
G.vexs[G.vexnum]=v;   //领接矩阵从vexs[0]开始储存顶点 
G.vexnum+=1;   //每存完一个,顶点+1 
}

int main()
{AMGraph G;
InitG(G);     //初始化 
int n;
printf("请输入要输入的顶点个数\n");
scanf("%d",&n);
for(int i=0;i//输入n次 
{char v;
scanf("%c ",&v);
InsertVex1(G,v); 
}
printf("%s",G.vexs);  //输出顶点 
return 0;
}

“多一少一”问题占程序员常犯错误的10%以上!
避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为
x、x-1、x+1中的哪个?
<、<=、==、>、>=中的哪个?