gpt4 book ai didi

c - 如何以编程方式获取二维数组中元素的相邻元素?

转载 作者:行者123 更新时间:2023-11-30 20:24:59 24 4
gpt4 key购买 nike

假设你有一个二维数组 arr[N][N] 。如果我输入 arr[i][j]对你来说,我应该得到左、右、上、下元素,即 arr[i][j-1], arr[i][j+1], arr[i-1][j]arr[i+1][j] 。例如:Arr[3][3]= {1, 2, 3, 4, 5, 6, 7, 8, 9}

  • 输入:5
  • 输出:4、6、2、8
  • 输入:1
  • 输出:null、2、null、4

如何编写一个应考虑边界条件的程序?

最佳答案

所以你的程序由两部分组成:

  1. 查找输入是否存在于某个索引处。通过循环数组找到它,如下所示:

    for( int i = 0; i < N; i++ ){
    for( int j = 0; j < N; j++ ){
    if(arr[i][j] == input) //produce output
    }
    }
  2. 正在产生输出。为简单起见,我将其打印出来,但如果您的目标是返回输入数字周围的值的函数,那么您应该 malloc 一个数组并将这些值复制到数组中。打印时,首先检查是否在范围内,如果超出范围则不要尝试打印,否则会出现问题。

    for( int k = i - 1 ; k < i + 2; k++ ){
    for(int l = j - 1; l < j + 2; j++ ){
    if ( k > -1 && l > -1 && k < N && j < N ){ // check if in bounds
    printf("%i ", arr[k][l]);
    }
    }
    }

关于c - 如何以编程方式获取二维数组中元素的相邻元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com