C for循环突然停止
C for loop suddenly stops
我正在尝试读取图中两个节点之间的距离并将其存储在数组中,但循环没有按预期工作。突然停了
Output:
Edge Number: 4
Enter distance between two nodes, Example: A B 10
A C 3
A B 2
C B 2
...Program finished with exit code 0
Press ENTER to exit console.
例如,当edgeNumber为4时,它停在3。这是我的代码。提前致谢。
Code:
#include <stdio.h>
#define S 50
int main(){
int dist[S][S], edgeNumber, i, temp;
char node1, node2;
printf("Edge Number: ");
scanf("%d", &edgeNumber);
printf("Enter distance between two nodes, Example: A B 10 \n");
for(i = 0; i < edgeNumber; i++){
scanf("%c %c %d", &node1, &node2, &temp);
dist[((int)node1) - 65][((int)node2) - 65] = temp;
dist[((int)node2) - 65][((int)node1) - 65] = temp;
}
return 0;
}
只需重写 scanf
的这个调用
scanf("%c %c %d", &node1, &node2, &temp);
^^^
喜欢
scanf( " %c %c %d", &node1, &node2, &temp);
^^^
格式字符串中的前导 space 允许跳过输入缓冲区中的白色 space 字符,包括换行符 '\n'
.
此外,使用像 65 这样的幻数也是个坏主意。您应该检查输入的字符是否为字母,并将它们转换为大写。否则你的代码是非常不安全的。您还应该测试调用 scanf.
的结果
我正在尝试读取图中两个节点之间的距离并将其存储在数组中,但循环没有按预期工作。突然停了
Output:
Edge Number: 4
Enter distance between two nodes, Example: A B 10
A C 3
A B 2
C B 2
...Program finished with exit code 0
Press ENTER to exit console.
例如,当edgeNumber为4时,它停在3。这是我的代码。提前致谢。
Code:
#include <stdio.h>
#define S 50
int main(){
int dist[S][S], edgeNumber, i, temp;
char node1, node2;
printf("Edge Number: ");
scanf("%d", &edgeNumber);
printf("Enter distance between two nodes, Example: A B 10 \n");
for(i = 0; i < edgeNumber; i++){
scanf("%c %c %d", &node1, &node2, &temp);
dist[((int)node1) - 65][((int)node2) - 65] = temp;
dist[((int)node2) - 65][((int)node1) - 65] = temp;
}
return 0;
}
只需重写 scanf
scanf("%c %c %d", &node1, &node2, &temp);
^^^
喜欢
scanf( " %c %c %d", &node1, &node2, &temp);
^^^
格式字符串中的前导 space 允许跳过输入缓冲区中的白色 space 字符,包括换行符 '\n'
.
此外,使用像 65 这样的幻数也是个坏主意。您应该检查输入的字符是否为字母,并将它们转换为大写。否则你的代码是非常不安全的。您还应该测试调用 scanf.
的结果