#include<stdio.h>
#define MAXSIZE 3
typedef char Vertice;
typedef int Edge;
typedef struct
{
Vertice vexs[MAXSIZE];
Edge arc[MAXSIZE][MAXSIZE];
//int numNodes, numEdeges;
}MGraph;
int Creat_Graph(MGraph* MG)
{
/* printf("点的个数,边的个数:");
scanf_s("%d,%d", MG->numNodes, MG->numEdeges);*/
printf("点的值:");
for (int i = 0; i < MAXSIZE; i++)
{
//scanf_s("%c", &(MG->vexs[i]));
MG->vexs[i] = getchar();
}
//getchar();
printf("边的关系:");
for(int i=0;i<MAXSIZE;i++)
for (int j = 0; j < MAXSIZE; j++)
{
int a;
scanf_s("%d", &a);
MG->arc[i][j] = a;
//printf("arc[%d][%d]的值为:%d", i, j, MG->arc[i][j]);
}
//getchar();
return 0;
}
void Check_Edge(MGraph M)
{
char a;
int i = 0, n1 = 0, n2 = 0;
printf("请输入要查询顶点:");
a = getchar();
for (i; a != M.vexs[i]; i++);
for (int x = 0; x < MAXSIZE; x++)
n1 += M.arc[i][x];
printf("%c的出度是%d\n", a, n1);
for (int y = 0; y < MAXSIZE; y++)
n2 += M.arc[y][i];
printf("%c的入度是%d\n", a, n2);
}
int main()
{
MGraph G;
Creat_Graph(&G);
Check_Edge(G);
return 0;
}
在使用了scanf_s函数的前面都加上下面的语句
fflush(stdin);
程序应该就正常 了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y