| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 299 人关注过本帖
标题:程序运行错误 求指点
只看楼主 加入收藏
ls8062464
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-6-7
结帖率:100%
收藏
 问题点数:0 回复次数:0 
程序运行错误 求指点
不知道哪儿出问题了  



设 m、n 均为大于 0 的整数,m 可表示为一些不超过 n 的整数之和,f(m,n) 为这种表示方式的数目。

例如,f(5,3)=5,有 5 种表示方法:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。

请编写程序,计算 f(m,n) 的值。

输入:
          m n

输出:
          f(m,n)的值
程序代码:
#include <stdio.h>
#include <stdlib.h>

int second_small(int (*(*p)[50])[50],int x,int y)
{
int i,j;
for(i=y;i>=1;i--)
{if(*(*p+50*x+i-1)>*(*p+50*x+i)) {j=i-1;break;} }
return j;
}

int main()
{int m,n,i,j,x=0,y,z,a[50][50];

 scanf("%d %d",&m,&n);

 

 if(m%n!=0) 

 {for(i=0;i<m/n-1;i++) a[x][i]=n;    y=m/n;  a[x][y]=m%n; }

 else {for(i=0;i<m/n-1;i++) a[x][i]=n;    y=m/n-1;}

for(;a[x][0]!=1;) 
{

 z=second_small(a,x,y);

 if(a[x][y]==1)
    if(a[x][z]>=3)     
    {
    for(i=0;i<=y;i++) a[x+1][i]=a[x][i]; x=x+1;
    a[x][z]=a[x][z]-1;a[x][z+1]=2;
    }             
    else 
    {
    for(i=0;i<=y;i++) a[x+1][i]=a[x][i]; x=x+1;
    a[x][z]=1;a[x][y+1]=1;
    }                

 else
     if( (a[x][z]-a[x][z+1])>1 )     
    {
    for(i=0;i<=y;i++) a[x+1][i]=a[x][i]; x=x+1;
    a[x][z]=a[x][z]-1;a[x][z+1]=a[x][z+1]+1;
    }             
    else 
    {
    for(i=0;i<=y;i++) a[x+1][i]=a[x][i]; x=x+1;
    a[x][y]=a[x][y]-1;a[x][y+1]=1;
    }                           
}

printf("%d\n",x+1);

system("PAUSE");
return 0;
}
搜索更多相关主题的帖子: 编写程序 
2014-06-08 14:17
快速回复:程序运行错误 求指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036139 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved