c - 输入变量使用随机值而不是我希望它们使用的值
问题描述
主函数中的输入 V、A 和 e 采用随机值。相反,我想通过输入给它们赋值。我认为这是因为变量未在图形函数中初始化,但这些值来自结构。我做错了什么?
完整代码:
struct Edge {
int src, dest, weight;
};
struct Graph {
int V;
int E;
struct Edge* edge;
};
struct Graph* createGraph(int V, int E)
{
struct Graph* graph = malloc(sizeof *graph);
graph->V = V;
graph->E = E;
graph->edge = (struct Edge*)malloc(E * sizeof(struct Edge));
return graph;
};
...
int main()
{
int V = 0;
int A = 0;
int e = 0;
int E = 0;
int cidade = 0;
int aeroporto = 0;
int cidade1 = 0;
int cidade2 = 0;
int custo = 0;
printf("Caso haja aeroportos, o vertice 0 e o ceu onde todos os aeroportos se ligam.\n");
printf("Caso nao haja aeroportos, o vertice 0 e uma cidade.\n\n");
printf("Introduza o numero de cidades: \n");
scanf("%d", &V);
printf("Introduza o numero de aeroportos: \n");
scanf("%d", &A);
printf("Introduza o numero de estradas: \n");
scanf("%d", &e);
printf("\n");
E = A + e;
struct Graph* graph = createGraph(V, E);
for (int i = 0; i < A; i++) {
printf("Introduza a cidade e o custo de construcao do aeroporto: \n");
scanf("%d %d", &cidade, &aeroporto);
graph->edge[i].src = cidade;
graph->edge[i].dest = 0; // vértice "céu"
graph->edge[i].weight = aeroporto;
}
for (int j = 0; j < e; j++) {
printf("Introduza as cidades e o custo da estrada: \n");
scanf("%d %d %d", &cidade1, &cidade2, &custo);
graph->edge[j].src = cidade1;
graph->edge[j].dest = cidade2;
graph->edge[j].weight = custo;
}
KruskalMST(graph);
return 0;
}
解决方案
推荐阅读
- bash - 在整个 bash 脚本中处理带有空格的变量/命令
- c - 为什么不同的编译器对相同的代码有不同的行为?
- ios - iOS 如何更快地从 PHAsset 导出视频?
- teensy - Teensy 作为串行设备
- python - keras lstm 的输出形状错误
- javascript - 可以在节点js中使用ajax将从客户端接收到的数据发送到php吗?
- reactjs - 如何在 create-react-app 中使用 Jest“项目”配置?
- python - 将 R 示例函数与 rpy2 一起使用时出现意外行为?
- algorithm - How to split range in groups?
- javascript - 使用媒体查询仅包含桌面上的 JS 文件