鱼C论坛

 找回密码
 立即注册
查看: 1141|回复: 1

想要边界初始化为-1

[复制链接]
发表于 2023-12-8 16:12:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么不能实现边缘为-1
#include<stdio.h>

int main()
{
    int n,i,j,c,d;
    scanf("%d%d%d",&n,&i,&j);
    int a[n][n];
    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[c][d]=-1;
           }
           else
           {
               a[c][d]=0;
           }
        }
    }
   
     for(c=0;c<n+2;c++)
    {
        for(d=0;d<n+2;d++)
        {
            printf("%d ",a[c][d]);
        }
        printf("\n");
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-8 16:13:25 | 显示全部楼层
在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][n];  // 创建一个大小为n x n的二维数组        // 将所有元素初始化为-1    for (int row = 0; row < n; row++) {        for (int col = 0; col < n; col++) {            array[row][col] = -1;        }    }        // 修改特定位置的元素    array[i][j] = 0;        // 输出数组    for (int row = 0; row < n; row++) {        for (int col = 0; col < n; col++) {            printf("%d ", array[row][col]);        }        printf("\n");    }        return 0;}
这样,数组的边界就被初始化为-1了。请注意,这里只是将边界上的元素修改为-1,并不是真正意义上的将边界初始化为-1。真正意义上的边界是指数组的第一行、最后一行、第一列和最后一列。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表