鱼C论坛

 找回密码
 立即注册
查看: 1506|回复: 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;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-12-8 16:13:25 | 显示全部楼层
在C语言中,数组的下标是从0开始的,所以不能直接将边界初始化为-1。如果你想要将数组的边界初始化为-1,可以将数组的所有元素初始化为-1,然后再将特定位置的元素修改为其他值。

例如,如果你想要创建一个大小为n x n的二维数组,并将边界初始化为-1,可以使用以下代码:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int n, i, j;
  5.     scanf("%d%d%d", &n, &i, &j);
  6.    
  7.     int array[n][n];  // 创建一个大小为n x n的二维数组
  8.    
  9.     // 将所有元素初始化为-1
  10.     for (int row = 0; row < n; row++) {
  11.         for (int col = 0; col < n; col++) {
  12.             array[row][col] = -1;
  13.         }
  14.     }
  15.    
  16.     // 修改特定位置的元素
  17.     array[i][j] = 0;
  18.    
  19.     // 输出数组
  20.     for (int row = 0; row < n; row++) {
  21.         for (int col = 0; col < n; col++) {
  22.             printf("%d ", array[row][col]);
  23.         }
  24.         printf("\n");
  25.     }
  26.    
  27.     return 0;
  28. }
复制代码

这样,数组的边界就被初始化为-1了。请注意,这里只是将边界上的元素修改为-1,并不是真正意义上的将边界初始化为-1。真正意义上的边界是指数组的第一行、最后一行、第一列和最后一列。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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