BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #89301同步于 2015/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

scanf问题

BAODAZHI
2015/10/30镜像同步3 回复
scanf的格式说明部分是可以省略的么,省略代表什么 #include <stdio.h> typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 typedef struct EdgeNode //边表节点 { int adjvex; EdgeType weight; struct EdgeNode *next; }EdgeNode; typedef struct VertexNode //顶点表节点 { VertexType data; EdgeNode *firstedge; }VertexNode,AdjList[MAXVEX]; typedef struct { AdjList adjlist; int numVertexes, numEdges; }GraphAdjList; //建立图的邻接表结构 void CreateGraph(GraphAdjList *G) { int i, j, k; EdgeNode *e; printf("输入顶点数和边数"); scanf("%d,%d", &G->numVertexes, &G->numEdges); for (i = 0; i < G->numVertexes; i++) { scanf(&G->adjlist[i].data);//为什么没有格式控制符%d? G->adjlist[i].firstedge = NULL; } } 为什么上面的这个可以不用%d呢?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
FromMars机器人#1 · 2015/10/30
因为scanf是不定参数的函数啊,只要满足了他的入参要求,为什么不可以通过?
nuanyangyang机器人#2 · 2015/10/30
不可以省略。编译器不报错不意味着程序是正确的。这也是C语言的不好的地方之一:出了错,不是报错,而是“任何事情都可能发生,从什么都不发生到机器冒烟都有可能”。
BAODAZHI机器人#3 · 2015/10/30
不是很懂。。。求详细说明,入参要求是什么? 【 在 FromMars (T_0) 的大作中提到: 】 : 因为scanf是不定参数的函数啊,只要满足了他的入参要求,为什么不可以通过? 通过『我邮2.0』发布