您的位置:

c语言程序杨辉,c程序杨辉三角

本文目录一览:

杨辉三角c语言程序怎么修改

把主函数改一下——

改动资料:

int main(int argc,char *argv[]){

squeue Q;

int e,n,i=1,j,r,k,t,m,x,y;//增加m,x,y变量用于页面控制

InitQue(Q);

printf("输入需要打印杨辉三角的行数n:");

scanf("%d",n);/////////////

for(r=1,t=n-1,k=(t1);tk;r*=t--);//这两行求这个三角形中最大的数

for(k+=!(n1);k1;r/=k--);

for(m=0;r;r/=10,m++);//求这个最大的数是多少位

Input(Q,1);/////////

t=i;

//for(i=1;i=n-t;i++){

for(i=1;i=(n-t)*m;i++){

printf(" ");

}//

printf("1\n");

for(i=2;i=n;i++){

r=0;

//for(k=1;k=n-i;k++){

for(k=1;k=(n-i)*m;k++){//改成这样

printf(" ");

}

for(j=1;j=i-1;j++){

e=outque(Q,e);

printf("%d",x=e+r);//改一下这一句

for(y=0;x;x/=10,y++);//加上这一句

for(x=0;xm+m-y;printf(" "),x++);//加上这一句

Input(Q,e+r);

r=e;

}

printf("1\n");

Input(Q,1);

}

return 0;

}

C语言杨辉三角编程

#include stdio.h

main()

{ int i,j,n=0,a[17][17]={0};

while(n1 || n16)

{ printf("请输入杨辉三角形的行数(大于0,小于17):");

scanf("%d",n);

}

for(i=0;in;i++)

a[i][0]=1; /*第一列全置为一*/

for(i=1;in;i++)

for(j=1;j=i;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];/*每个数是上面两数之和*/

for(i=0;in;i++) /*输出杨辉三角*/

{ for(j=0;j=i;j++)

printf("%5d",a[i][j]);

printf("\n");

}

}

//够简单了吧?

求杨辉三角形得C语言程序代码。要求六行,使用二维数组

#include stdio.h

int main()

{

int i=0,j=0,a[6][6]={{0}};

for (i=0;i6;i++)

a[i][0]=a[i][i]=1;

for (i=2;i6;i++)

for(j=1;ji;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for (i=0;i6;i++)

{

for (j=0;j=i;j++)

printf("%5d",a[i][j]);

printf("\n");

}

return 0;

}

c语言杨辉三角

#includestdio.h

#includestdlib.h

#define MAXSIZE 20

typedef struct

{ int datas[MAXSIZE];

int front,rear;

}SqQueue;

//初始化队

void InitQueue(SqQueue *Q)

{ Q-front=Q-rear=-1;

}

int EmptyQueue_C(SqQueue *Q)

{//若队列为空,返回1,否则返回0

if(Q-rear==Q-front) return 1;

else return 0;

}//EmptyQueue_C

// 取对头元素

char GetQueue_C(SqQueue *Q)

{//若队列不为空,则返回队首元素,否则返回NULL

int e;

if(EmptyQueue_C(Q))

{printf("Queue is empty\n");

return(0);}

else

{e=Q-datas[(Q-front+1)%MAXSIZE];

return e;}

}//GetQueue_C

//入队

int EnQueue_C(SqQueue *Q, int e)

{//将元素e插入到队列中,作为新的队尾。操作成功返回1,否则返回0

if(Q-front==(Q-rear+1)%MAXSIZE)//队满

{printf("Queue is full.\n");

return 0;}

else

{Q-rear=(Q-rear+1)%MAXSIZE;

Q-datas[Q-rear]=e;

return 1;}

}//EnQueue_C

//出队

int DeQueue_C(SqQueue *Q)

{ //删除队头元素,若操作成功返回1,否则返回0

if(EmptyQueue_C(Q))

{printf("Queue is empty.\n");

return 0;}

else

{Q-front=(Q-front+1)%MAXSIZE;

return 1;}

}//DeQueue_C

//输出队

void PRINT(SqQueue *Q)

{

int i;

if(Q-front!=Q-rear)

{

printf("当前循环队列中从头到尾的元素为:");

i=Q-front;

while(i!=Q-rear)

{

i=(i+1)%MAXSIZE;

printf("%d ",Q-datas[i]);

}

}

else

printf("当前循环队列为空!");

putchar('\n');

}

main()

{

SqQueue *Q;

int n;

int i,j,k,s1,s2;

Q=(SqQueue *)malloc(sizeof(SqQueue));

InitQueue(Q);

EnQueue_C(Q,1);

printf("请输入杨辉三角的层数:\n");

scanf("%d",n);

for(i=1;i(n-1)*3+2;i++)

printf(" ");

printf("%-3d\n",1);

for(i=2;i=n;i++)

{

for(k=0;k(n-i)*3+1;k++)

printf(" ");

for(j=1,s1=0;ji;j++)

{

int s2;

s2=GetQueue_C(Q);

DeQueue_C(Q);

printf("%-3d",s1+s2);

printf(" ");

EnQueue_C(Q,s1+s2);

s1=s2;

}

printf("%-3d",1);

EnQueue_C(Q,1);

printf("\n");

}

}

你试下这个