c语言 二维数组 递归函数问题 求高手帮助!!

inta[8][8]={{1,1,1,1,1,1,1,1},{1,1,0,0,1,0,0,1},{1,0,0,1,0,0,1,1},{1,1,1,0,0,1,0,1},{... int a[8][8] = {{1,1,1,1,1,1,1,1},
{1,1,0,0,1,0,0,1},
{1,0,0,1,0,0,1,1},
{1,1,1,0,0,1,0,1},
{1,0,1,1,1,0,0,1},
{1,1,0,0,0,1,1,1},
{1,1,1,1,0,0,0,1},
{1,1,1,1,1,1,1,1}};

对于任意的坐标i j
目标计算 a[i-1][j]+a[i-1][j+1]+a[i][j+1]+a[i+1][j+1]+a[i+1][j]+a[i+1][j-1]+a[i][j-1]+a[i-1][j-1];
但要求编写递归函数计算!!!
求大神帮助!!
展开
 我来答
donghelou
2012-06-03 · TA获得超过885个赞
知道答主
回答量:37
采纳率:22%
帮助的人:13.2万
展开全部
#include <stdio.h>
#include <stdlib.h>
//函数声明
int calculate(int (*a)[8]);
int main(void)
{
int a[8][8] = { {1,1,1,1,1,1,1,1},
{1,1,0,0,1,0,0,1},
{1,0,0,1,0,0,1,1},
{1,1,1,0,0,1,0,1},
{1,0,1,1,1,0,0,1},
{1,1,0,0,0,1,1,1},
{1,1,1,1,0,0,0,1},
{1,1,1,1,1,1,1,1} };

int *p=&a[0][0];
int i,j,num;

printf("请输入元素为0的元素的两个下标:");
scanf("%d%d",&i,&j);
num = calculate( a , p , i , j );
if(num==-1)
{
printf("输入错误!\n");
}
else
{
printf("a[%d][%d] 周围有 %d 个 1 \n",i,j,num);
}

system("pause");
return 0;
}
//函数功能:计算数组中为 0 的元素周围 1 的个数
//函数参数:(*a)[8]为数组名,p为数组首元素地址,i,j 分别为元素的行、列下标
//返回值:m为1的个数
int calculate(int (*a)[8],int *p,int i,int j)
{
static int m=0;

if(p==&(a[8][8]) ||a[i][j]==1)
{
return -1;
}

if(p==&(a[i-1][j]) || p==&(a[i-1][j+1]) || p==&(a[i][j+1]) ||p==&(a[i+1][j+1]) || p==&(a[i+1][j]) ||p==&(a[i+1][j-1])
|| p==&(a[i][j-1]) || p==&(a[i-1][j-1]))
{
m+=*p;
}
calculate(a,p+1,i,j);

return m;
}
不知道这样满意不满意?
唄唄丶韩
2012-05-29 · 贡献了超过166个回答
知道答主
回答量:166
采纳率:0%
帮助的人:26.2万
展开全部
任务谢谢合作,,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友348b3d3b3
2012-05-31 · 超过22用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:52.8万
展开全部
#include<stdio.h>
int a[8][8] = {{1,1,1,1,1,1,1,1},
{1,1,0,0,1,0,0,1},
{1,0,0,1,0,0,1,1},
{1,1,1,0,0,1,0,1},
{1,0,1,1,1,0,0,1},
{1,1,0,0,0,1,1,1},
{1,1,1,1,0,0,0,1},
{1,1,1,1,1,1,1,1}};

int sum8(int i,int j,int n)
{
int s;
if(n==3) s=a[i-2][j]+a[i-4][j];
else
s=sum8(i+1,j,n+1)+a[i-1][j+1]+a[i-1][j-1];
return s;
}

void main()
{
int i,j;
printf("格式:i,j (0<i,j<7)\n");
scanf("%d,%d",&i,&j);
printf("%d\n",sum8(i,j,0));
}
这样的递归行不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式