c语言程序输出杨辉三角 简单的

编写一个程序使其结果为(要求输出十行)
1
11
121
1331
14641
…………
可能用到二维数组
希望大家帮帮忙 大一新生 初学编程 望多指教
希望高手留下qq以便随时请教
若不便留也不勉强

#include <stdio.h>

int c(int i,int j)

{if(j==0||j==i)return 1;

 else return c(i-1,j)+c(i-1,j-1);

}

int main() 

{

int n,i,j;

scanf("%d",&n);

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

{

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

printf("   ");

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

printf("%6d",c(i,j));

printf("\n");

}

getch();

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-23
#include <stdio.h>
int main(void)
{
int a[10][10];
int i.j;
for(i=0;i<10;i++,putchar('\n'))
for(j=0;j<=i;j++,printf("%d",a[i][j]))
a[i][j]=j==0||j==i?1:a[i-1][j-1]+a[i-1][j];
return 0;
}
我也是大一的 交个朋友吧 445115857本回答被提问者采纳
第2个回答  2008-11-23
void main()
{
long i,j,n,k;
scanf("%ld",&n); //若只要10行,把这里改成n=10即可
for(i=1;i<=n;i++)
{
k=1;
for(j=1;j<i;j++)
{
printf("%ld ",k);
k=k*(i-j)/j;
}
printf("1\n");
}
}
第3个回答  2008-11-23
#include <stdio.h>

/*
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
*/

//输出结果
void output(int a[][20],int n){
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
}

//杨辉三角
void yanghui(int n){
char *addr="gdgzzch.blog.163.com";
printf("本程序来自:%s\n",addr);
int a[20][20];
int i,j;
for(i=0;i<n;i++){
a[i][0]=1; //第一列为1
a[i][i]=1; //对角线为1
for(j=1;j<i;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j]; //肩上两个数之和
}
}
output(a,n);
}

int main()
{
yanghui(10);
return 1;
}
相似回答