为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构 无向图临接矩阵存储并输出矩阵 问题:边数只能读取前两个输入的,之后的输出都是0

数据结构 无向图临接矩阵存储并输出矩阵 问题:边数只能读取前两个输入的,之后的输出都是0

C
qq_twilight_53163408 2016-05-26 22:22:24
/*  无向图临接矩阵存储算法     问题:边数只能读取前两个输入的。 */ #include<stdio.h> #define MAXSIZE 10 typedef struct {     char vertex[MAXSIZE];            //顶点为字符型且顶点顶点表的长度小于MAXSIZE。     int edges[MAXSIZE][MAXSIZE];     //边为整形且edges为邻接矩阵 }mgraph;                             //采用邻接矩阵存储的图类型 void creatmgraph(mgraph *g,int e,int n) {    //建立无向图的临接矩阵g->edges,n为顶点个数,e为边数     int i,j,k;     char ch;     printf("输入顶点数据(0~n-1):\n");     for(i=0;i<n;i++)    //读入顶点信息     {         scanf("%c",&ch);         g->vertex[i]=ch;     }     for(i=0;i<n;i++) {         for(j=0;j<n;j++)             g->edges[i][j]=0; }                         //初始化临接矩阵 printf("输入边(i,j):");     for(k=1;k<=e;k++) //输入e条边     {         scanf("%d,%d",&i,&j);         g->edges[i][j]=1;         g->edges[j][i]=1;      //无向图  建立对称矩阵     }     for(i=0;i<n;i++) {         for(j=0;j<n;j++)             printf("%4d",g->edges[i][j]); printf("\n"); } } int main() {     int n,e;     mgraph g;     printf("请输入顶点和边数:");     scanf("%d%d",&n,&e);     creatmgraph(&g,e,n);     return 0; }
查看完整描述

2 回答

?
慕运维8283692

TA贡献31条经验 获得超17个赞

你在%c前面加个空格试试,可能是换行符的影响。%d不会读'\n',但是%c会读

查看完整回答
反对 回复 2016-05-28
?
楽兿

TA贡献5条经验 获得超4个赞


菜鸟占沙发看台下大笑:“瓦不会”

查看完整回答
反对 回复 2016-05-27
  • 2 回答
  • 0 关注
  • 1647 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信