| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:杨辉三角怎么对齐~求解
只看楼主 加入收藏
龙纹身的男孩
Rank: 1
来 自:安徽芜湖
等 级:新手上路
帖 子:27
专家分:7
注 册:2014-11-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
杨辉三角怎么对齐~求解
#include"stdio.h"
void main()
{
int a[100][100];
int i,j,n;
printf("how many hang do you want?");
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i][1]=a[i][i]=1;
for(i=3;i<=n;i++)
for(j=2;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
搜索更多相关主题的帖子: 杨辉三角 include 
2014-12-04 10:08
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
用格式化标志来进行格式化输出  适当的配以空格  自己调试几次可以搞定

DO IT YOURSELF !
2014-12-04 10:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这个结果可以接受吗

how many hang do you want?9
                   1
                 1   1
               1   2   1
             1   3   3   1
           1   4   6   4   1
         1   5  10  10   5   1
       1   6  15  20  15   6   1
     1   7  21  35  35  21   7   1
   1   8  28  56  70  56  28   8   1

DO IT YOURSELF !
2014-12-04 10:28
龙纹身的男孩
Rank: 1
来 自:安徽芜湖
等 级:新手上路
帖 子:27
专家分:7
注 册:2014-11-27
收藏
得分:0 
回复 3 楼 wp231957
是啊是啊,,空格怎么数啊~~

你只有跑的比时间快,才能改变这个结局。
2014-12-06 16:50
龙纹身的男孩
Rank: 1
来 自:安徽芜湖
等 级:新手上路
帖 子:27
专家分:7
注 册:2014-11-27
收藏
得分:0 
回复 2 楼 wp231957
格式化标志是什么???~~

你只有跑的比时间快,才能改变这个结局。
2014-12-06 16:50
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:15 
程序代码:
#include <stdio.h>
#include <string.h>

int main(void) {
    int a[100][100];
    char str[100];
    int i, j, k, n, p;
    printf("INPUT N: ");
    scanf("%d", &n);
    printf("\n");

    for(i = 1; i <= n; i++)
        a[i][1] = a[i][i] = 1;

    for(i = 3; i <= n; i++)
        for(j = 2; j < i; j++)
            a[i][j] = a[i - 1][j] + a[i - 1][j - 1];

    sprintf(str, "%d", a[n][(n + 1) / 2 + 1]);
    p = strlen(str);

    for(i = 1; i <= n; i++) {
        for(k = 1; k < (n * (p + 1) - p * i); k++) {
            printf(" ");
        }

        for(j = 1; j <= i; j++) {
            sprintf(str, "%d", a[i][j]);
            printf("%*.*s", (-2) * p, p, str);
        }

        printf("\n");
    }

    return 0;
}


main.exe > main.txt
如 N=15 时

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 longwu9t 于 2014-12-6 23:39 编辑 ]

Only the Code Tells the Truth             K.I.S.S
2014-12-06 23:11
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
补充一下 在记事本里看输出的结果时 应该取消自动换行 把字体调小点
比如这个 N = 20
图片附件: 游客没有浏览图片的权限,请 登录注册

Only the Code Tells the Truth             K.I.S.S
2014-12-06 23:49
快速回复:杨辉三角怎么对齐~求解
数据加载中...
 
   



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

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