| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 282 人关注过本帖
标题:帮小弟我看一段代码 我找不出它错误。。。。。。。。。。。。。
只看楼主 加入收藏
天生
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-4
收藏
 问题点数:0 回复次数:0 
帮小弟我看一段代码 我找不出它错误。。。。。。。。。。。。。

下面的代码是用来验证一个算法的,就是输入一个N位十进制数,将它分成M段,那么就有M个数,程序就是为了求出乘积的最大直。请高手们指导一下。。。。。不胜感激!!!!!!!!!!!!!
#include<stdio.h>
#include<iostream>
using namespace std;
const int _max=6;
int main()
{ int intn[_max],n,k,l,temp,t=0; //intn[_max]用来存放各位数
int mul_k(int n,int m,int *p);
char ch;
do
{
cout<<"请输入数据"<<endl;
cin>>n>>k>>l;
do{
intn[t++]=n%10;
n=n/10;
}while(n);
for(int i=0;i<t;i++)
cout<<intn[i]<<" ";
cout<<endl;
for( temp=0,i=0;i<=(t-1)/2;i++)
{ temp=intn[i];
intn[i]=intn[t-1-i];
intn[t-1-i]=temp;
}
cout<<mul_k(k,l,intn);
getchar();
}while((ch=getchar())=='q'||ch=='Q');
return 0;
}

int mul_k(int n,int m,int *p)
{
int s,max,*st;
int a[_max][_max]; //a[i][j]就是前i个数的j段乘积的最大直
int count(int i,int m,int *b); //从第i位起m个数组成的十进制数
st=p;
for(int i=1;i<=n;i++)
a[i][1]=count(0,i,p); //只分一段时
for(i=2;i<=n;i++)
for(int j=2;j<=i&&(!(i==n&&j==m));i++)
{
max=a[j-1][j-1]*count(j-1,i-j+1,st);
s=j-1;
for(int t=0,k=j;k<i;k++)
if((t=a[k][j-1]*count(k,k-j+1,st))>max)
{ max=t;
s=k;
}
}
return a[n][m];
}
int conut(int i,int m,int *b)
{ int sum=0,k=1;
for(int t=i+m-1;t>=i;t--)
{ sum=sum+k*b[t];
k*=10;
}
return sum;
}

搜索更多相关主题的帖子: 代码 
2007-11-04 15:10
快速回复:帮小弟我看一段代码 我找不出它错误。。。。。。。。。。。。。
数据加载中...
 
   



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

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