C++编程问题题目见下 输出杨辉三角 请指出错在哪了 并详细讲解一下 答案我有 但我想知道自己的错在哪了

#include<iostream.h>
using namespace std;
int zuhe(int n,int k);
int jiecheng(int n);
int main()
{
int n,ij,nk,j,i;
cout<<"Please input a number:::";
cin>>n;
for( i=0;i<=n;i++)
{
for(j=0;j<=i;j++)
{
zuhe(i,j);
}
cout<<endl;
}
system("pause");
main();
}
int zuhe(int n,int k)
{
int nk,sum1,sum2,sum3,sum;
jiecheng(n);
sum1=sum;
jiecheng(k);
sum2=sum;
jiecheng(n-k);
sum3=sum;
nk=sum1/(sum2*sum3);
cout<<nk<<' ';
return nk;
}
int jiecheng(int n)
{
int sum;
if(n==0||n==1)
return 1;
if(n>1)
sum=n*jiecheng(n-1);
return sum;
}

你的int jiecheng(int n)是有返回值的,而且返回的是结果

但是你在int zuhe(int n,int k)中定义的sum是没有用的,
jiecheng(n)的结果并不能赋值给在这个函数体中定义的sum
你应该把
jiecheng(n);
sum1=sum;
改成一句话:sum1=jiecheng(n);
下面依次类推sum2=jiecheng(k);
sum3=jiecheng(n-k);

还有就是,你的zuhe(i,j)函数是不是能够完成输出每行每个数的功能?
如果是的话,函数体应该写成:void zuhe(int n,int k),不需要有返回值,写函数如果需要用到返回值,就写,不需要的话就不要写函数的返回值,容易出问题
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-13
发呆分好
第2个回答  2011-02-14
kuo hao bu dui
相似回答