注册 登录
编程论坛 新人交流区

c++杨辉三角问题,大家国庆快乐~

夜子 发布于 2007-10-02 22:50, 1325 次点击


#include <iostream>

using namespace std;
/*void main()
{
int a;
cin>>a;
int b[a]={0};//expected constant expression 就是说静态定义一个数组的时候,必须给一个常量表达式放在下标那一栏

}
*/
class YH //class 要小写,否则提示标示符YH没有结束符;即将这一行当成了语句看待
{
public:
YH(int jie=0)
{ cout<<jie<<"阶杨辉三角视图"<<endl;
int *p=new int[jie+1];//
}
~YH()
{
cout<<"结束程序"<<endl;
delete p;
}
void coeff(int a) {
if(a==0)
p[0]=1;
else if(a==1)
{
p[0]=1;
p[1]=1;
}
else
{
coeff(a-1);
p[a]=p[0]=1;
for(int b=1;b<=a-1;b++)
p[b]=p[b]+p[b-1];
}
;
void kg(int a)
{
for(int i=1;i<=jie-a;i++)

cout<<' ';
}

void getYH()
{

for(int i=0;i<=jie;i++)//阶数从0开始,范围到jie 为止
kg(i);//先输出第i 行的空格
coeff(i);//构建第i 行的数据
for(int j=0;j<=i;j++)//输出i 行数据。共0~i i+1个数据
cout<<p[j]<<' ';
cout<<endl;
}
private:
int jie;
int* p;
};
void main()
{
YH a(4);
a.getYH();

}
//这个程序编译没有错误,但是执行的时候会有Access Violation(非法访问),Access Violation常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到。

14 回复
#2
小灵心2007-10-02 23:18
代码中还有的表情。。。
#3
认识铁哥不2007-10-02 23:28

哈哈,有点麻烦,算法太复杂,看不懂

#4
不再2007-10-03 00:32
杨辉三角什么时候变得这么复杂了
#5
lyb868182007-10-03 01:47
没必要这么写吧。
#6
body2022007-10-03 10:46
我是新手,只看了一星期的C,不怎么看得懂程序,不过用新装的VC运行了一下,有个错误提示:
NUEXPECTED END OF FILE FOUND
不熟悉用面向对象的方式编程,也不知道那里错了
#7
guoqian1232007-10-03 11:26
我不懂
#8
ygh4494977112007-10-03 12:19
请注意格式啊!
我在c++控制台运行,编译没错,出现内存错误:"ox10252758"指令引用的"oxccccccco"内存.该内存不能为"read".
指针很容易出错啊,还很难找出那错啦
#9
coding2007-10-03 15:12
回复:(夜子)c++杨辉三角问题,大家国庆快乐~
小的东西,
就要简单一些,
不要过于复杂了

# include <stdio.h>
void main()
{
int narray[20];
int ncount;
int ncols,lines;
scanf("input your number:",&ncount);
for(nlines=0;nlines<n;nlines++)
{
narray[nlines,0]=1;
narray[nlines,nlines]=1;
}
for(nlines=2;nlines<ncount;nlines++)
for(ncols=1;ncols<nlines;ncols++)
narray[nlines,ncols]=narray[nlines-1,ncols-1]+narray[nlines-1,ncols];
for(nlines=0;nlines<ncount;nlines++)
{
for(ncols=0;ncols<=nlines;ncols++)
printf("%d ",narray[nlines,ncols]);
printf("\n");
}
getchar();
}




#10
lxm5209102007-10-03 15:12
感觉好复杂啊   看样子是我没学好c啊
#11
HaPpY随心2007-10-03 16:16
回复:(coding)回复:(夜子)c++杨辉三角问题,大家...
int ncols,lines;

应该是int ncols,nlines;

#12
dongbo192007-10-03 17:08
ting nan de !
#13
夜子2007-10-04 10:35

我的意思是用一个类来实现这个杨辉三角,而且输出的时候是一种正三角形的样式。希望大家帮忙啊,真的不知道那个内存错误是怎么回事。我再把程序给大家#include <iostream>

using namespace std;
class YH {
public:
YH(int jie=0)
{ cout<<jie<<"阶杨辉三角视图"<<endl;
int *p=new int[jie+1];//
}
~YH()
{
cout<<"结束程序"<<endl;
delete p;
}
void coeff(int a)
{
if(a==0)
p[0]=1;
else if(a==1)
{
p[0]=1;
p[1]=1;
}
else
{
coeff(a-1);
p[a]=p[0]=1;
for(int b=1;b<=a-1;b++)
p[b]=p[b]+p[b-1];
}
}//刚才这里丢了这个},就有个unexpected end of file found得错误,所以一定检查好括号是否成对,时候在类定义结尾丢掉了;
void kg(int a)
{
for(int i=1;i<=jie-a;i++)

cout<<' ';
}

void getYH()
{

for(int i=0;i<=jie;i++)//阶数从0开始,范围到jie 为止
kg(i);//先输出第i 行的空格
coeff(i);//构建第i 行的数据
for(int j=0;j<=i;j++)//输出i 行数据。共0~i i+1个数据
cout<<p[j]<<' ';
cout<<endl;
}
private:
int jie;
int* p;
};
void main()
{
YH a(4);
a.getYH();

}
//这个程序编译没有错误,但是执行的时候会有Access Violation(非法访问),Access Violation常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到。

#14
heris2007-10-05 10:18
有道理
#15
夜子2007-10-05 18:12
回复:(heris)有道理
有人会么?谢谢啦
1