C语言,自己的代码数据总是溢出

2024-11-23 03:31:20
推荐回答(1个)
回答1:

先占个位置  程序如下 烦请采纳  谢谢

#include "stdafx.h"

#include

int main()

{

int i=0,j=0,m=0,n=0,A[10][10]={0},P=1;

printf("请输入行数和列数,用空格分隔\n");

scanf("%d %d",&m,&n);//读取行数和列数

for(i=0;i

for(j=0;j

A[i][j]=P++;//给数组赋值

for(i=0;i

{

for(j=0;j

printf("%d ",A[i][j]);

printf("\n");//输出数组

}

scanf("%d %d",&i,&j);//读取坐标

i--;j--;

if(i==0&&j==0)  //左上顶点

P=A[0][1]+A[1][0]+A[1][1];

if(i==0&&j==n-1)//右上顶点

P=A[0][n-2]+A[1][n-1]+A[1][n-2];

if(i==m-1&&j==0)//左下顶点

P=A[m-2][0]+A[m-2][1]+A[m-1][1];

if(i==m-1&&j==n-1)//右上顶点

P=A[m-1][m-2]+A[m-2][n-2]+A[m-2][n-1];

if(i==0&&j!=0&&j!=n-1)//最上边中间位置 排除顶点

P=A[0][j-1]+A[1][j-1]+A[1][j]+A[1][j+1]+A[0][j+1];

if(i==m-1&&j!=0&&j!=n-1)//最下边中间位置 排除顶点

P=A[m-1][j-1]+A[m-2][j-1]+A[m-2][j]+A[m-2][j+1]+A[m-1][j+1];

if(j==n-1&&i!=0&&i!=m-1)//最右边中间位置 排除顶点

P=A[i-1][n-1]+A[i-1][n-2]+A[i][n-2]+A[i+1][n-2]+A[i+1][n-1];

if(j==0&&i!=0&&i!=m-1)//最左边中间位置 排除顶点

P=A[i-1][0]+A[i-1][1]+A[i][1]+A[i+1][0]+A[i+1][1];

if(i!=0&&j!=0&&i!=m-1&&n!=n-1)//完全中间位置

P=A[i-1][j-1]+A[i-1][j]+A[i-1][j+1]+A[i][j+1]+A[i][j-1]+A[i+1][j+1]+A[i+1][j]+A[i+1][j-1];

printf("%d\n",P);

return 0;

}



是不是如图这样