
gcc+vim(linux)或visual studio(windows)
01使用vim创建一个文件yanghui.c,并打开它进行编辑。
02首先输入预处理指令 #include <stdio.h>,用于调用输出函数printf。
03编译一个函数void yanghui(int n)。其中,n表示二项式的次数。
04首先,对二项式的幂次进行检查,若小于0,说明输入的次数是不合法的,直接结束打印并给出提示。
05然后定义一个(n+1)*(n+1)的二维数组并初始化所有值为0。
06然后根据杨辉三角的规律给数组赋值:
每一行的第一个与最后一个数都是1;
其他的数等于该数的上面一个数与左上角的数之和。
07对杨辉三角进行输出,不相关的数组数据不输出,并注意换行。
08在main函数中对 void yanghui(int n)进行测试,选用参数为3, 7, 10。
09保存文档并进行编译输出的结果如下:
由此可以验证我们的程序是正确的。
//a[21]就是告诉你只能存21个数据,也就是说你最多输出20行,再多就不行了!#include <stdio.h>
void main()
{
int a[21],i,j,n
scanf("%d",&n)
printf("\n")
a[0]=1
for(i=0i<=ni++)//n用来控制要输出的杨辉三角的行数
{
for(j=1j<=40-3*ij++) //第i行前面的空格个数为40 - 3*i,为了显示更加美观而已
printf(" ")
for(j=0j<=ij++) //用来输出第i行的i + 1个元素,注意第0行只有一个元素1
printf("%6d",a[j])
a[i+1]=1
for(j=ij>=1j--)
a[j]=a[j-1]+a[j]//从后向前计算下一行的除了a[0]外的每个元素的数值还放在a[]数组中
printf("\n")
*** 作:
$ ./a.out (windows下是a.exe linux下是a.exe)
5 (输入5表示输出5级 依次类推)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 51010 5 1
windows &Linux 环境下编译通过~好久没写windows应用了,写得有点粗糙了。。。
(图片发布上来。。。)
#include <iostream>
#include <vector>
#include <iterator>
using namespace std
typedef vector<int>VECT
bool YHTriangle( vector<VECT >* vvect, int num )
{
VECT Vtemp
VECT Vold
Vold.push_back(0)
if(num <= 0)
return false
Vtemp.push_back(1)
vvect->push_back(Vtemp)
for(int times = 1times != num++times)
{
Vtemp.clear()
VECT::iterator it = Vold.begin()
Vtemp.push_back(1)
while( ++it != Vold.end() )
{
Vtemp.push_back( *it + *(it - 1) )
}
if( it == Vold.end() )
{
Vtemp.push_back(1)
}
Vold = Vtemp
vvect->push_back(Vold)
}
return true
}
bool PrintYHTriangle( vector<VECT >*vvect)
{
vector<VECT >::iterator it = vvect->begin()
for(it != vvect->end()++it )
{
VECT::iterator iter = it->begin()
for(iter != it->end()++iter )
{
cout<<*iter<<"\t"
}
cout<<endl
}
return true
}
int main()
{
vector<VECT >vvect
int n//记录杨辉三角的层数
//如果构建杨辉三角失败,则清理容器,重新生成
do
{
cout<<"Please input n:"<<endl
cin>>n
vvect.clear()
}while(! YHTriangle( &vvect, n ) )
cout<<endl
PrintYHTriangle( &vvect )
cout<<"press any key to quit ~"<<endl
cin>>n
return 0
}
%5d和\t 差不多,反正都是用来数据对齐的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)