鱼C论坛

 找回密码
 立即注册
查看: 2919|回复: 2

请教一个关于scanf函数的简单问题,会的请入

[复制链接]
发表于 2014-12-21 14:54:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAXVERTEX 20
  4. typedef char VertexType;
  5. typedef int EdgeType;

  6. typedef struct EdgeNode
  7. {
  8.     int  adjvex;                //要存放的下标
  9.     EdgeType weight;
  10.     struct EdgeNode *next;
  11. }EdgeNode;
  12. typedef struct VertexNode
  13. {
  14.     VertexType data;
  15.     struct EdgeNode *firstedge;
  16. }VertexNode,AdjList[MAXVERTEX];

  17. typedef struct GraphAdjList
  18. {
  19.     AdjList adjList;
  20.     int numVertexAdjList;
  21.     int numEdgeAdjList;
  22. }GraphAdjList;

  23. static int Flag[MAXVERTEX];

  24. //建造一个图
  25. GraphAdjList* CreateAdjList(GraphAdjList *G)
  26. {
  27.     int i = 0,j = 0;
  28.     EdgeNode *e;
  29.     VertexType c;
  30.     printf("请输入图的顶点数和边数,中间用逗号隔开:\n");
  31.     fflush(stdin);
  32.     scanf(" %d,%d",&(G->numVertexAdjList),&(G->numEdgeAdjList));
  33.     printf("请输入顶点的值 :\n");
  34.     scanf("%c",&c);
  35.     while(i < G->numVertexAdjList)
  36.     {
  37.         if(c == '\n')
  38.             break;
  39.         G->adjList[i].data = c;
  40.         G->adjList[i].firstedge = NULL;
  41.         scanf("%c",&c);
  42.     }
  43.     for(i = 0;i < G->numEdgeAdjList;i++)
  44.     {
  45.         printf("请输入边(Vi~Vj)的邻接顶点的下标:");
  46.         scanf("%d,%d",i,j);
  47.         e = (EdgeNode*)malloc(sizeof(EdgeNode));
  48.         e->adjvex = j;
  49.         e->next = G->adjList[i].firstedge;
  50.         G->adjList[i].firstedge = e;
  51.         e = (EdgeNode*)malloc(sizeof(EdgeNode));
  52.         e->adjvex = i;
  53.         e->next = G->adjList[j].firstedge;
  54.         G->adjList[j].firstedge = e;

  55.     }
  56.     return G;
  57. }

  58. //给标识数组赋初值0
  59. void InitFlag()
  60. {
  61.     int i;
  62.     for(i = 0;i < MAXVERTEX;i++)
  63.     {
  64.         Flag[i] = 0;
  65.     }
  66. }

  67. void DepthFirstSearch(GraphAdjList *GL,int i)
  68. {
  69.     int j = 0;
  70.     EdgeNode *p;
  71.     p = GL->adjList[i].firstedge;
  72.     Flag[i] = 1;                             //赋值为1说明已经遍历过
  73.     printf("%c  ",GL->adjList[i].data);
  74.     while(p != NULL)
  75.     {
  76.         if(Flag[p->adjvex] == 0)
  77.         {
  78.             DepthFirstSearch(GL,p->adjvex);
  79.         }
  80.         p = p->next;
  81.     }
  82. }

  83. int main()
  84. {
  85.     int k = 0;
  86.     GraphAdjList *G;
  87.     GraphAdjList *GL;
  88.     InitFlag();
  89.     fflush(stdin);
  90.     GL = CreateAdjList(G);
  91.     DepthFirstSearch(GL,k);
  92.     return 0;
  93. }
复制代码
请问一下 scanf(" %d,%d",&(G->numVertexAdjList),&(G->numEdgeAdjList));
这里我输入
4,5回车
为什么会报错呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-12-22 12:43:36 | 显示全部楼层
怎么木有人······
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-10 11:56:20 | 显示全部楼层
确认是不是全英文符号。中文,和英文,不仔细看也差不多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-16 02:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表