c - 创建邻接矩阵时出现问题

标签 c

它同时问两个问题,为什么? 这是我的代码:

#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;
}

提前致谢!

enter image description here

最佳答案

你是对的。输出很奇怪。
您的问题是scanf。使用 scanf("%2c", ans);。帮助过我。
但即便如此,我还是遇到了循环不迭代的问题 正确。

说明:

原因是矩阵。该矩阵没有分配任何内存,因为它的大小是可变的。 因此,通过将矩阵的一项设置为 1,这会影响变量 j

解决方案:

需要解决动态分配内存的问题。
看看:

关于c - 创建邻接矩阵时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47513431/

相关文章:

c - 如何在 C 中将 .txt 文件扫描为字符?

c - 如何在 C 中使用 malloc 和 realloc 正确分配结构中的数组?

c - 即使进程未刷新,cmd.exe 如何显示标准输出?

使用调试寄存器断点和向量化异常处理捕获堆栈跟踪

c++ - eclipse mars c/c++ 不会在 Windows 7 上构建

c - C中的字符串和字符连接

c - 为什么使用多个 "if"s 不起作用,但在 while 循环中使用 "if"s 和 "else if"s 却起作用?

c - memcpy() 将整数值复制到字符缓冲区

objective-c - 我真的需要 atexit_b 吗?

c - C 中的 bsearch() 在新的 gcc 版本 7.4.0 中给出段错误