它同时问两个问题,为什么? 这是我的代码:
#include <stdio.h>
int main()
{
int i,j;
int n;
int adjmatrix[n][n];
char ans;
printf("How many vertices?");
scanf("%d",&n);
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf("Are vertex %d and %d adjacent?",i,j);
scanf("%c",&ans);
if (ans=='Y' || ans=='y')
{
adjmatrix[i][j]=1;
}
else adjmatrix[i][j]=0;
}
}
return 0;
}
提前致谢!
最佳答案
你是对的。输出很奇怪。
您的问题是scanf
。使用 scanf("%2c", ans);
。帮助过我。
但即便如此,我还是遇到了循环不迭代的问题
正确。
说明:
原因是矩阵。该矩阵没有分配任何内存,因为它的大小是可变的。
因此,通过将矩阵的一项设置为 1,这会影响变量 j
。
解决方案:
需要解决动态分配内存的问题。
看看:
关于c - 创建邻接矩阵时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47513431/