尼康18140镜头评测:谁能帮个忙用C语言编个关于杨辉三角的程序

来源:百度文库 编辑:高考问答 时间:2024/04/29 21:03:34
谢谢了,各位仁兄

#include<stdio.h>

void main(void)
{
int t[20][20], x, y, N;
N=11; /*输出的行数*/

for(x=0;x<N;x++)
{
t[x][0]=1; /*初始化第一列和坐标为x,x的值为1*/
t[x][x]=1;
}

for(x=2; x<N; x++)
for(y=1; y<=x-1; y++)
{
t[x][y]=t[x-1][y]+t[x-1][y-1]; /*给数组赋值*/
}

for(x=0; x<N; x++)
{
for(y=0; y<=x; y++)
{
printf("%d ",t[x][y]); /*输出数组*/
}
printf("\n");
}
}

怎么没有赏金啊,我很穷快要落草为寇了....
还好我有现成的,以前写的,罗里罗嗦的一大堆.....
//输入行数,回车
#include "iostream"
#include "iomanip"
using namespace std;
enum Error_code{success,overflow,underflow,queueempty};

const int maxqueue=40;
//类的定义
class queue
{
public:
queue();
bool empty()const;
int get_front();
Error_code enter_queue(const int x);
Error_code del_queue();
bool full()const;
int get_count();
private:
int front,rear;
int entry[maxqueue];

};

queue::queue()
{
front=rear=0;
}

bool queue::empty()const
{
if(rear==front)return true;
else return false;
}

int queue::get_front()
{
if(empty())return queueempty;
else return entry[(1+front)%maxqueue];
}

Error_code queue::enter_queue(const int x)
{
if(full())return overflow;
rear=(1+rear)%maxqueue;
entry[rear]=x;
return success;
}

Error_code queue::del_queue()
{
if(empty())return underflow;
front=(1+front)%maxqueue;
return success;
}

bool queue::full()const
{
if((1+rear)%maxqueue==front)return true;
else return false;
}

int queue::get_count()
{
return (rear-front+maxqueue)%maxqueue;
}
//---------------------------------------------------------
int main()
{
int N;
queue queue_t;
cout<<"input the number of the triangle'lines:"<<endl;
cin>>N;
queue_t.enter_queue(1);
for(int m=1;m<=N;m++)
cout<<setw(3)<<" ";
cout<<setw(3)<<queue_t.get_front()<<endl; //将第一行输出
queue_t.enter_queue(1);
for(int n=2;n<=N;n++) //控制输出行数
{
for(int m=1;m<=N-queue_t.get_count();m++)
cout<<setw(3)<<" ";
queue_t.enter_queue(1);
cout<<setw(3)<<" "<<setw(3)<<queue_t.get_front();
do //将每一行算出后输出
{
int acc;
acc=queue_t.get_front();
queue_t.del_queue();
queue_t.enter_queue(acc+queue_t.get_front());

if(queue_t.full())
cout<<"\nthe number is too large,mistake!\n";
cout<<setw(3)<<" "<<setw(3)<<queue_t.get_front();

}while(queue_t.get_front()!=1);

queue_t.del_queue();
queue_t.enter_queue(1);
cout<<endl;
}
return 0;
}

这主要是排列要计算好啊,不然就不成三角啦