用双重循环就行了啊
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;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!