#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循环给二维数组赋值后需再用scanf后出错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-赖老师(软件之家) 2021-05-11 23:05关注
在使用了scanf_s函数的前面都加上下面的语句
fflush(stdin);
程序应该就正常 了。
解决 无用评论 打赏 举报
悬赏问题
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
- ¥15 求daily translation(DT)偏差订正方法的代码
- ¥15 js调用html页面需要隐藏某个按钮