本文目录一览:
杨辉三角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");
}
}
你试下这个