千万请您看一看,一个C问题?

Tianxudong 2000-07-24 09:44:00
请教各位大师,下面的程序要求将一个自然数N进行分划,
如:N=5时有:
4,1
3,2
3,1,1
2,2,1
2,1,1,1
1,1,1,1,1
这六种不同的分划结果,并逐一打印出。
小弟不知程序中的如:<---A--->空该填何内容,万望不吝
赐教!!!
另外请问对此种题型,该如何入手?如能赐教,万分感激!!!
[程序]
#include<stdio.h>
int n[1000],m,k;
void printfsum()
{int j;
for(j=0;n[j]!=0;j++)
printf("%3d",n[j]);
printf("\n");
}

void sum(i)
{if(m-n[i]<=n[i])
{<---A--->
i++;
n[i+1]=0;
}
else
{<---B--->
<---C--->
i++;
}
if(m!=n[i]) <---D--->
else
printfsum();
if(n[i]>1)
{<---E--->
<---F--->
}
else
{while((n[i]==1)&&(i>0))
{i--;
m+=n[i];
}
if(i!=0)
{<---G--->
<---H--->
}
}
}

main()
{int i,j;
scanf("%d",&n[0]);
m=k=n[0];
for(i=1;i<=k;i++) n[i]=0;
while(n[0]!=1)
{n[0]--;i=0;
sum(0);
m=k;
}
}












...全文
132 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wedong2000 2000-07-24
  • 打赏
  • 举报
回复

a:n[i+1]=m=m-n[i];
b:n[i+1]=n[i];
c:m-=n[i];
d:sum(i);
e:n[i]--
f:sum[i]
g:n[i]--
h:sum[i]

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧