| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 20044 人关注过本帖, 1 人收藏
标题:怎样控制输出空格?
只看楼主 加入收藏
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
结帖率:81.82%
收藏(1)
 问题点数:0 回复次数:11 
怎样控制输出空格?
怎样控制输出空格?
像下图一样
       1
      1 1
     1 2 1
    1 3 3 1
… … … … …
我杨辉三角会求了,但输出后是
1
11
121
1331
……
程序代码:
//输入一个整数n,打印n行的杨辉三角(n为输入,并且小于14)
#include<stdio.h>
main()
{
    int i,j,n,k;
    int a[13][13];
    printf("输入一个整数n,将会打印出n行的杨辉三角,n<14\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        a[i][0]=1;
        a[i][i]=1;
    }
    for (k=n;k>=0;k--)
        printf(" ");
    for(i=2;i<n;i++)
        for(j=1;j<i;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j];
        for(i=0;i<n;i++)
        {
            for(j=0;j<=i;j++)
                printf("%4d",a[i][j]);
            printf("\n");
        }
}


希望大家给点思路。
谢谢。



[ 本帖最后由 dydsdyds 于 2010-2-18 20:39 编辑 ]
搜索更多相关主题的帖子: 输出 空格 
2010-02-18 17:49
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
用循环啊,你观察一下每一行开始的空格数和行数的关系,然后在大循环里专门用一个循环输出空格
2010-02-18 17:53
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 2楼 heartnheart
再加一个变量?

c语言刚开一学期,就换开VB...
2010-02-18 17:54
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
对啊
2010-02-18 18:01
void没什么
Rank: 2
来 自:山东莱芜
等 级:论坛游民
帖 子:15
专家分:13
注 册:2010-2-14
收藏
得分:0 
#include<stdio.h>
main()
{
    int i,j,n;
    int a[13][13];
    printf("输入一个整数n,将会打印出n行的杨辉三角,n<14\n");
    scanf("%d",&n);
    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];
        for(i=0;i<n;i++)
        {
            for(n--;n<=0,printf("%c",32);n--);//32为ASCII码的空格
            for(j=0;j<=i;j++)
                printf("%c%4d",32,a[i][j]);
            printf("\n");
        }
}
2010-02-18 18:28
void没什么
Rank: 2
来 自:山东莱芜
等 级:论坛游民
帖 子:15
专家分:13
注 册:2010-2-14
收藏
得分:0 
#include<stdio.h>
main()
{
    int i,j,n;
    int a[13][13];
    printf("输入一个整数n,将会打印出n行的杨辉三角,n<14\n");
    scanf("%d",&n);
    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];
        for(i=0;i<n;i++)
        {
            for(n--;n<=0;n--)printf("%c",32);//32为ASCII码的空格
            for(j=0;j<=i;j++)
                printf("%c%4d",32,a[i][j]);
            printf("\n");
        }
}
不好意思错了
2010-02-18 18:31
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 6楼 void没什么
也不对……
要这种结果
       1
      1 1
     1 2 1
    1 3 3 1
… … … … …



c语言刚开一学期,就换开VB...
2010-02-18 18:51
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
int main(int argc, char *argv[])
{
    int i,j,n;
    int a[13][13];
    printf("输入一个整数n,将会打印出n行的杨辉三角,n<14\n");
    scanf("%d",&n);
    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];
        for(i=0;i<n;i++)
        {
            int k=(n-i)*2;
            for(;k>0;k--)
                printf("%c",' ');
            for(j=0;j<=i;j++)
                printf("%4d",a[i][j]);
            printf("\n");
        }
}

★★★★★为人民服务★★★★★
2010-02-18 19:57
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 8楼 cnfarer
有两段不大明白,
红色的代码是做什么?
蓝色的呢?为什么要那样定义k的值啊?

int main(int argc, char *argv[])

int k=(n-i)*2;
            for(;k>0;k--)
                printf("%c",' ');


c语言刚开一学期,就换开VB...
2010-02-18 20:27
Alen0128
Rank: 4
等 级:业余侠客
帖 子:171
专家分:222
注 册:2009-12-26
收藏
得分:0 
#include <stdio.h>
int main()
{
    int j = 0;
    int a[10][10];
    int row = 0;
    int col = 0;

    for (row=0; row<10; row++)
    {
        a[row][0] = 1;

        for (col=1; col<row+1; col++)
        {
            a[row][col] = 1;
        }
    }

    for (row=2; row<10; row++)
    {
        for (col=1; col<row; col++)
        {
            a[row][col] = a[row-1][col-1] + a[row-1][col];
        }
    }

    for (row=0; row<10; row++)
    {
        for (j=10-row; j>0; j--)
        {
            printf(" ");
        }

        for (col=0; col<row+1; col++)
        {
            printf("%4d",a[row][col]);
        }

        printf("\n");
    }

    return 0;
}

-不想让你发现我 凌乱的脚步 ,我努力 跟上你的速度
2010-02-19 12:19
快速回复:怎样控制输出空格?
数据加载中...
 
   



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

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