关于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;
}
这函数返回值是不是在子函数里面自个循环好久才返回给主函数? 展开
#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;
}
这函数返回值是不是在子函数里面自个循环好久才返回给主函数? 展开
展开全部
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;
}
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;
}
追问
您好,您这段代码我看了之后还是不懂,能否再解释一下?另外我所提问的那段代码没有用到结构体,请问传入结构体是指什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询