| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 18751 人关注过本帖
标题:如何用C语言实现打印一个杨辉三角?
只看楼主 加入收藏
小瘪三的烦恼
Rank: 1
等 级:新手上路
帖 子:86
专家分:3
注 册:2008-9-20
收藏
 问题点数:0 回复次数:8 
如何用C语言实现打印一个杨辉三角?
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
搜索更多相关主题的帖子: C语言 杨辉三角 打印 
2008-10-11 08:31
hmf66
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-7
收藏
得分:0 
#include <stdio.h>

int c(x,y)        //求杨辉三角形的第x行第y列的值
 int x,y;
 {
  int z;
  if((y==1)||(y==x+1))    //若为x行的第1或第x+1列,刚输出1
  return (1);
  z=c(x-1,y-1)+c(x-1,y);//否则,其值为前一行中第y-1列与第y列值之和
  return (z);
 }

void main()
{
 int i,j,n=13;
 printf("N=");
 while(n>12)
 scanf("%d",&n);    //控制输入正确的值以保证屏幕显示的图形正确
 for(i=0;i<=n;i++)    //控制输出N行
 {
  //for(j=0;j<12-i;j++)    //控制输出第i行前面的空格
  //printf(" ");
  for(j=1;j<i+2;j++)    //输出第i行的第j个值
  printf("%6d",c(i,j));
  printf("\n");
 }
}
收到的鲜花
  • wangweinoo12008-10-12 22:28 送鲜花  5朵   附言:好文章
2008-10-11 10:14
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
复制给你了
main()
{
     int i,j,x,y,n=0,a[20]={0,1};
     while(n<1 || n>19)
     {
       scanf("%d",&n);
     }
     for(i=1;i<=n;i++)
    {
       x=0;
       for(j=1;j<=i;j++)
       {
         y=a[j];
         a[j]=x+y;
         x=y;
         printf("%5d",a[j]);
       }
       printf("\n");
    }
}

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-11 11:51
w998179
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-9-26
收藏
得分:0 
杨辉三角
#include "stdio.h"
#define N 50
void yang(int a[][N],int n)
{int i,j;
 for(i=0;i<n;i++)
 {a[i][0]=1;
  a[i][i]=1;
 }
 for(i=2;i<n;i++)
  for(j=1;j<i;j++)
   a[i][j]=a[i-1][j-1]+a[i-1][j];
}
void main()
{int n,j,i;
 int a[N][N];
 scanf("%d",&n);
 yang(a,n);
  for(i=0;i<n;i++)
   {for(j=0;j<=i;j++)
    printf("%d ",a[i][j]);
    putchar('\n');
   }
}
2008-10-11 12:11
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
二楼用的是递归呀
差点没注意

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-11 19:58
shangabc
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2008-10-7
收藏
得分:0 
#include<stdio.h>
main()
{int i,j;
int a[9][9];
printf("n");
for(i=0;i<9;i++)
  {a[i][0]=1;
  a[i][i]=1;}
for(i=2;i<9;i++)
  for(j=1;j<i;j++)
  a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<9;i++)
  {for(j=0;j<=i;j++)
  printf("%5d",a[i][j]);
  printf("n");
  }
}
2008-10-11 21:59
shangabc
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2008-10-7
收藏
得分:0 
二楼的递归真不错
2008-10-11 22:08
zhangj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-30
收藏
得分:0 
我也是刚在网上找的
#include<stdio.h>
void main()
{
long t,i,j,n,k;
scanf("%ld",&n);

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");
}
}
2008-10-30 15:53
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
#include<stdio.h>
void main()
{
    int i,j,n,k;
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        k=1;
        for(j=1;j<i;j++)
        {
            printf("%d ",k);
            k=k*(i-j)/j;//每次要打印的下一个数等于前一个数乘以其所在行数和列数的差在处以其列数,就Ok了~!
        }
    printf("%ld",k);
    printf("\n");
    }
}      

我参照8楼的加了点东西,完善了一点,8楼的真牛B,杨辉三角的这个规律都被你找出来了。。。
    佩服。。。
2009-11-01 18:34
快速回复:如何用C语言实现打印一个杨辉三角?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025895 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved