| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 947 人关注过本帖
标题:谁有更好更好看的程序,输出杨辉三角
只看楼主 加入收藏
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:8 
谁有更好更好看的程序,输出杨辉三角
程序代码:
//输出十行杨辉三角
#include<stdio.h>
#define M 10
void main()
{
    int i,j,a[M][M];
    for(i=0;i<M;i++)
    {
        a[i][0]=1;a[i][i]=1; /*先赋值两边*/

    }
    for(i=2;i<M;i++)
        for(j=1;j<i;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j]; /* 计算中间的数值 */
        for(i=0;i<M;i++)/* 输出部分 */
        {
            for(j=0;j<i+1;j++)
                printf("%3d",a[i][j]);
                printf("\n");
        }
}
搜索更多相关主题的帖子: 杨辉三角 include 
2011-10-29 19:36
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:2 
不知道这个是否满足你的审美要求
程序代码:
#include<stdio.h>
#define M    10
int a[M + 1][M + 1];
int main()
{
    int i, j;
    a[1][1] = 1;
    for(i = 2; i <= M; i++, putchar('\n'))
    for(j = 1; j <= i; printf("%5d", a[i][j++] = a[i-1][j-1]+a[i-1][j]));
    return 0;
}

重剑无锋,大巧不工
2011-10-29 19:46
zhaoyongjund
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2011-8-20
收藏
得分:3 
#include <stdio.h>
#define  N  5
#define  M  9
main()
{
  int i,j;
  int a[N][M];

  for(i=0;i<N;i++)
   for(j=0;j<M;j++)
     a[i][j]=0;
  a[0][(M-1)/2]=1;
  for(i=1;i<N;i++)
    for(j=1;j<M-1;j++)
      a[i][j]=a[i-1][j-1]+a[i-1][j+1];
      a[N-1][0]=a[N-1][M-1]=1;
  for(i=0;i<N;i++)
  {
    for(j=0;j<M;j++)
    {
      if(j%M==0)
      printf("\n");
      if(a[i][j]==0)
    printf(" ");
      else
    printf("%d",a[i][j]);

    }
  }
}
2011-10-29 20:16
随风飘荡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:208
专家分:598
注 册:2011-9-9
收藏
得分:0 
每次看到2L大大简练的代码我都想撞墙

话说for居然还能这么用

for (i=0;i<=n; ++i,putchar('\n'))
for (i=0; i<=n; ++i,printf("aa"));

居然连printf都能用 是逗号运算符的缘故吗?

为什么的自己弄的putchar('A')没有任何效果

另外这个在执行效率跟分开写有区别吗?


[ 本帖最后由 随风飘荡 于 2011-10-30 01:16 编辑 ]
2011-10-30 01:04
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:0 
#include <stdio.h>
void main()
{int i,a[11][11],b,c;
for (i=0;i<=10;i++)
a[i][0]=1,a[i][i]=1;//&cedil;赋值阶段1
for (b=2;b<=10;b++)
for (c=1;c<=b-1;c++)
a[b][c]=a[b-1][c-1]+a[b-1][c];//&cedil;赋值阶段2
for (b=0;b<=10;b++)
for (c=0;c<=b;c++)
{
printf("%d ",a[b][c]);
if (c==b)printf("\n");
}
}

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2011-10-30 09:32
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:0 
请问%3d 和%5d 是什么东西?

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2011-10-30 09:37
queifa
Rank: 1
等 级:新手上路
帖 子:25
专家分:9
注 册:2011-10-2
收藏
得分:0 
%3d和%5d是输出间隔
2011-10-30 10:04
weiwei555
Rank: 5Rank: 5
来 自:中国
等 级:职业侠客
帖 子:179
专家分:323
注 册:2011-3-4
收藏
得分:0 
回复 6楼 cqm9266
printf函数  格式%md----m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出
2011-10-30 11:56
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
收藏
得分:0 
回复 6楼 cqm9266
#include<stdio.h>
int main()
{
    int i,j,h,k,m,a[100][100];
    scanf("%d",&k);
    for(h=1;h<=k;h++)
    {
        scanf("%d",&m);
        for(i=0;i<m;i++)
        {
            for(j=0;j<=i;j++)
            {
                if((i==j)||(j==0))
                    a[i][j]=1;
                else
                    a[i][j]=a[i-1][j]+a[i-1][j-1];
            }
        }
        for(i=0;i<m;i++)
        {
            for(j=0;j<=i;j++)
                printf("%d   ",a[i][j]);
            printf("\n\n");
        }
    }
    return 0;
}
2011-10-30 12:24
快速回复:谁有更好更好看的程序,输出杨辉三角
数据加载中...
 
   



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

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