标题:数字金字塔编程题怎么写
只看楼主
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:100%
已结贴  问题点数:13 回复次数:5 
数字金字塔编程题怎么写
输入一个正整数repeat (repeat<10),做repeat次下列运算:

输入一个正整数n(n<10),输出n行数字金字塔。
输出时使用以下语句:

printf(" ");
printf("%d ", i);
printf("\n");
输入格式:

输入在第1行中给出1个正整数repeat(repeat<10)

接下来repeat行,每行给出一个正整数n(n<10)

输出格式:

按照对应顺序的n值,依次输出repeat个数字金字塔 (n行数字金字塔的格式如样例所示,注意:每个数字后面跟一个空格。)

输入样例:

2
5
2
输出样例:

        1
      2 2 2
    3 3 3 3 3
  4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5
  1
2 2 2
作者: 吕曦
单位: 武汉理工大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
搜索更多相关主题的帖子: 金字塔 输入 repeat 输出 数字 
2019-12-04 08:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
你哪里不会要说出来,否则就成了替你做作业了

程序代码:
#include <stdio.h>

void foo( unsigned n )
{
    for( unsigned i=0; i!=n; ++i )
    {
        printf( "%*s", (n-1-i)*2, "" );
        for( unsigned j=0; j!=2*i+1; ++j )
            printf( "%u%c", i+1, " \n"[j==2*i] );
    }
}

int main( void )
{
    foo( 1 );
    foo( 5 );
    foo( 9 );
}

2019-12-04 09:33
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
得分:0 
回复 2楼 rjsp
int main()
{
    int r,n,i,z,q,j,m;
    scanf("%d",&r);
    for(i=1;i<=r;i++)
    {
        scanf("%d",&n);
        z=n;
        for(j=1;j<=n;j++)
            {for(m=1;m<=z-1;m++)
            printf("  ");
            z--;
        for(q=1;q<=2*j-1;q++)
            printf("%d ",j);
        printf("\n");}
    }

}
我写的这个有什么问题
2019-12-04 10:33
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
你这里输入的两个数中,r不起作用,只有n起作用,当n=5时,输出:
        1
      2 2 2
    3 3 3 3 3
  4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5
2019-12-04 16:58
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
得分:0 
回复 4楼 自学的数学
为什么r不起作用呢
2019-12-05 22:54
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:13 
回复 5楼 黑暗骑士5D
你将r用于for循环里,但是在这个循环里面,r根本就没有出现,所以你可以试试,将这个for循环去掉,也是一样的,所以r是没有用的。请看:
程序代码:
#include <stdio.h>
int main()
{
    int r,n,i,z,q,j,m;
    scanf("%d",&r);
    //for(i=1;i<=r;i++)
    //{
        scanf("%d",&n);
        z=n;
        for(j=1;j<=n;j++)
            {for(m=1;m<=z-1;m++)
            printf("  ");
            z--;
        for(q=1;q<=2*j-1;q++)
            printf("%d ",j);
        printf("\n");}
   // }
}
2019-12-06 20:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498192-1-1.html




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

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