请问如何在2D Array中 圈出区域并将其中的值相加

img


请问如何在2D Array中 圈出区域并将其中的值相加
如图所示 选取array[2][2]并画一个size = 2 的正方形 求得其中得值相加

用双重循环就行了啊

int startx=2,starty = 2;
int xsize = 1000,ysize=1000;
int sum=0;
for(int i=startx;i<startx+xsize;i++)
    for(int j=starty;j<starty+ysize;j++)
       sum += array[i][j];
printf("%d",sum);

int sum = 0;
sum = sum + array[2][2] + arrary[2][3]+array[3][2]+array[3][3];
参考如下:

#include <stdio.h>

#define MAXSIZE 1000


int main()
{
    int array[MAXSIZE][MAXSIZE];// 这里的数据补充
    int arraysize; //array数组的实际大小
    int row, col;  //开始计算的行和列
    int sum = 0;
    int size, i, j;
    //读入array数组的实际大小
    printf("请输入二维数组的大小:");
    scanf("%d", &arraysize);
    //读取array数组的数据
    for (i = 0; i < arraysize; i++)
    {
        for (j = 0; j < arraysize; j++)
            scanf("%d", &array[i][j]);
    }
    printf("请输入正方形的大小:");
    scanf("%d", &size);
    printf("请输入起始位置:");//比如输入2 2
    while (1)
    {
        scanf("%d %d", &row, &col);
        if (row + 1 > arraysize-1 || col + 1 > arraysize-1)
            printf("超出范围,请重新输入:");
        else
            break;
    }
    //计算和
    for (i = row; i < row + size; i++)
    {
        for (j = col; j < col + size; j++)
            sum += array[i][j];
    }
    
    printf("sum=%d\n", sum);
    return 0;
    
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632