想要边界初始化为-1
为什么不能实现边缘为-1#include<stdio.h>
int main()
{
int n,i,j,c,d;
scanf("%d%d%d",&n,&i,&j);
int a;
for(c=0;c<n+2;c++)
{
for(d=0;d<n+2;d++)
{
if(c==0||c==n+1||d==0||d==n+1)
{
a=-1;
}
else
{
a=0;
}
}
}
for(c=0;c<n+2;c++)
{
for(d=0;d<n+2;d++)
{
printf("%d ",a);
}
printf("\n");
}
return 0;
}
在C语言中,数组的下标是从0开始的,所以不能直接将边界初始化为-1。如果你想要将数组的边界初始化为-1,可以将数组的所有元素初始化为-1,然后再将特定位置的元素修改为其他值。
例如,如果你想要创建一个大小为n x n的二维数组,并将边界初始化为-1,可以使用以下代码:
#include <stdio.h>
int main()
{
int n, i, j;
scanf("%d%d%d", &n, &i, &j);
int array;// 创建一个大小为n x n的二维数组
// 将所有元素初始化为-1
for (int row = 0; row < n; row++) {
for (int col = 0; col < n; col++) {
array = -1;
}
}
// 修改特定位置的元素
array = 0;
// 输出数组
for (int row = 0; row < n; row++) {
for (int col = 0; col < n; col++) {
printf("%d ", array);
}
printf("\n");
}
return 0;
}
这样,数组的边界就被初始化为-1了。请注意,这里只是将边界上的元素修改为-1,并不是真正意义上的将边界初始化为-1。真正意义上的边界是指数组的第一行、最后一行、第一列和最后一列。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]