免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1297 | 回复: 0
打印 上一主题 下一主题

[C] 谁能告诉我这段代码怎么了?应该是屏蔽换行符有问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-24 23:32 |只看该作者 |倒序浏览
  1. #include <stdio.h>

  2. /* 图的邻接矩阵表示法的存储结构 */
  3. typedef char VertexType;     /* 用户自定义顶点数据类型 */
  4. typedef int EdgeType;      /* 用户自定义权值类型 */
  5. #define MAXVEX 100
  6. #define INFINITY 65535
  7. typedef struct MGraph
  8. {
  9.     VertexType vex[MAXVEX];
  10.     EdgeType arc[MAXVEX][MAXVEX];
  11.     int numVertexes, numEdges;       /* 顶点个数和边的个数 */
  12. } MGraph;

  13. /* 对即将在主函数中调用的函数进行声明 */
  14. void CreateMGraph(MGraph *G);

  15. int main(void)
  16. {
  17.     MGraph G;
  18.     int i, j;
  19.     CreateMGraph(&G);

  20.     printf("输入两顶点的下标: ");
  21.     scanf("%d,%d", &i, &j);
  22.     if (G.arc[i][j] != INFINITY)
  23.         printf("两顶点之间有边,权值为: %d", G.arc[i][j]);
  24.     else
  25.         printf("两顶点之间无边");
  26.     printf("\n");

  27.     return 0;
  28. }

  29. /* 无向网图的构建 */
  30. void CreateMGraph(MGraph *G)
  31. {
  32.     int i, j, k;
  33.     EdgeType w;
  34.     printf("输入当前图的顶点数和边数:\n");
  35.     scanf("%d,%d", &G->numVertexes, &G->numEdges);

  36.     /* 输入顶点信息建立顶点表 */
  37.     i = 0;
  38.     do
  39.     {
  40.         scanf("%c", &G->vex[i]);
  41.         ++ i;
  42.     }
  43.     while (G->vex[i] == '\n' && i < G->numVertexes);

  44.     /* 对边表进行初始化 */
  45.     for (i = 0; i < G->numVertexes; ++i)
  46.         for (j = 0; j < G->numVertexes; ++j)
  47.             G->arc[i][j] = INFINITY;

  48.     /* 输入边的信息,建立邻接矩阵 */
  49.     for (k = 0; k < G->numEdges; ++k)
  50.     {
  51.         printf("分别输入边 (vi,vj) 的下标值 i, j 和边上的权值 w:\n");
  52.         scanf("%d,%d,%d", &i, &j, &w);
  53.         G->arc[i][j] = w;
  54.         G->arc[j][i] = G->arc[i][j];    /* 因为是无向图所以矩阵对称 */
  55.     }
  56. }
复制代码
最后执行的时候完全出现不了建立顶点表的信息,我想应该是下面这段代码出问题了,但是不知道问题在哪?求指教
  1. /* 输入顶点信息建立顶点表 */
  2.     i = 0;
  3.     do
  4.     {
  5.         scanf("%c", &G->vex[i]);
  6.         ++ i;
  7.     }
  8.     while (G->vex[i] == '\n' && i < G->numVertexes);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP