在c中正确声明变量

对于c编码器来说,下面的内容肯定会非常简单,但我正在编写一个小程序来模拟一些名为gomoku的游戏。 对于用户,您必须输入一个整数N,其对应于’N次N’平方,其由’N次N’整数组成。

所以代码运行得很好,但我有一个简单的问题:当我输入’N次N’整数时,我做了一些

int N; scanf("%d",&N); char c[N][N]; while (i<N){ scanf("%s\n",&c[i]); i++; } 

然后我将每个c[i]的char转换为int进行一些涉及c[i][j] ,这非常不自然。 但是如果我必须声明int c[N][N] ,就不可能像在while循环运行时那样输入相同的整数c[i][j]

有没有人有想法声明int c[N][N] ,输入整数,然后用整数c[i][j]计算时计算相同的?

最好的,纽本

您不必读取char然后将其转换为int。 你可以简单地阅读integeres:

 for(int i = 0; i < N; ++i) scanf("%d", &c[i]); //of course c has to be int** type 

你确定你想要读N个整数吗? 整个arrays不是N N? 如果您想要将N N个对象读取到数组,代码应如下所示:

 int N, i, j; scanf("%d",&N); int c[N][N]; for(i = 0; i < N; ++i) { for(j = 0; j < N; ++j) { scanf("%d", &c[i][j]); /* do something */ } }