关于C语言函数返回值 10

如此题#include<stdio.h>#include<stdio.h>#include<string.h>inta[101][101],n;intb[101][101... 如此题
#include<stdio.h>
#include<stdio.h>
#include<string.h>
int a[101][101],n;
int b[101][101];
int c(int i,int j)
{
if(i==n)
return a[i][j];
if(b[i][j]!=-1)
return b[i][j];
if(c(i+1,j)>c(i+1,j+1))
return b[i][j]=(c(i+1,j)+a[i][j]);
else
return b[i][j]=(c(i+1,j+1)+a[i][j]);
}
int main()
{
memset(b,-1,sizeof(b));
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
scanf("%d",&a[i][j]);
printf("%d\n",c(1,1));
return 0;
}
这函数返回值是不是在子函数里面自个循环好久才返回给主函数?
展开
 我来答
藤原子大雄
2018-01-25 · TA获得超过7197个赞
知道大有可为答主
回答量:6977
采纳率:82%
帮助的人:1756万
展开全部
1、传入结构体指针,用结构体保存返回;
2、加个条件检测。

#include<stdio.h>

typedef struct _result {
int ji;
int tu;
} result;

int main()
{
int fun(int,int,result*);
int sum,j_sum; /*sum为鸡和兔的总数,j_sum为鸡兔脚的总数*/
result r;
int f;
f = 1;
do {
printf("请输入鸡和兔的总数:");
scanf("%d",&sum);
printf("请输入鸡和兔脚的总数:");
scanf("%d",&j_sum);
fun(sum,j_sum, &r);
if(r.ji == -1 || r.tu == -1) {
printf("你输入的鸡兔的总数和脚的总数不能够能配对!\n");
} else {
printf("鸡的数量为%d\n",r.ji);
printf("兔的数量为%d\n",r.tu);
f = 0;
}
} while(f);
return 0;
}

void fun(int i,int j, result* r)
{
int t,jl;
r->ji = r->tu = -1;
if((j>2*i)&&(j<4*i))
{
t=(j-2*i)/2;
jl=i-t;
}
r->ji = jl; r->tu = t;
}
追问
您好,您这段代码我看了之后还是不懂,能否再解释一下?另外我所提问的那段代码没有用到结构体,请问传入结构体是指什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式