先占个位置 程序如下 烦请采纳 谢谢
#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; }
是不是如图这样