c语言输入n(3<=n<=10),输出n行的杨辉三角形

如题所述

#include<stdio.h>

int main()

{int a[11]={0};

 int i,j,n;

 scanf("%d",&n);

 a[0]=1;

 for(i=0;i<=n;i++)

 {for(j=i;j>0;j--)a[j]+=a[j-1];

  printf("%*s",2*(n-i),"");

  for(j=0;j<=i;j++)printf("%4d",a[j]);

  printf("\n");

  }

 return 0;

}

追问

我要的是这样的
1
11
121
1331

追答

#include<stdio.h>

int main()

{int a[11]={0};

 int i,j,n;

 scanf("%d",&n);

 a[0]=1;

 for(i=0;i<=n;i++)

 {for(j=i;j>0;j--)a[j]+=a[j-1];

  for(j=0;j<=i;j++)printf("%4d",a[j]);

  printf("\n");

  }

  return 0;

}

追问

那n的范围没有算进去啊

追答

#include
int main()
{int a[11]={0};
int i,j,n;
scanf("%d",&n);
if(n10){printf("n的大小超出范围!\n"); return 0;}
a[0]=1;
for(i=0;i0;j--)a[j]+=a[j-1];
for(j=0;j<=i;j++)printf("%4d",a[j]);
printf("\n");
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-04

参考代码:

#include <stdio.h>
#define MAX 100
#define X(a) (a++)%MAX
int main()
{
int queue[MAX];
int r=0,l=0,n,m,i,j,h;
printf("输入杨辉三角的行数:");
scanf("%d",&h);
queue[X(r)]=0;
queue[X(r)]=1;
m=queue[X(l)];
for(i=0;i<h;i++)
{
queue[X(r)]=0;
for(j=0;j<i+2;j++)
{
n=m;
m=queue[X(l)];
queue[X(r)]=m+n;
if(n!=0)
printf("%d ",n);
}
printf("\n");
}

return 0;
}

追问

n的范围没有算进去啊

第2个回答  2016-04-04
#include "stdio.h"
int main(void){
    int a[11]={0},n,i,j;
    while(1){
        printf("How many lines of output?\n");
        if(scanf("%d",&n) && n>2 && n<11)
            break;
        printf("Error, redo: ");
    }
    for(a[1]=i=1;i<=n;i++){
        for(j=i;j>=1;j--)
            printf("%d ",a[j]+=a[j-1]);
        printf("\n");
    }
    return 0;
}

相似回答