编写一个函数,其功能是输出数字金字塔,要求用递归方法来解决。

编写一个函数,其功能是输出数字金字塔,要求用递归方法来解决。运行效果:用户输入5,则屏幕显示:1121123211234321123454321刚学C语言用尽量简单易懂的... 编写一个函数,其功能是输出数字金字塔,要求用递归方法来解决。
运行效果:用户输入5,则屏幕显示:
1
121
12321
1234321
123454321
刚学C语言 用尽量简单易懂的程序 谢谢
给点提示也行 该怎么用递归的方法啊
展开
 我来答
kaixingui2012
2014-12-02 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6333万
展开全部
#include <stdio.h>
int N;
void py( int n )
{
if ( n > 0)
{
int i;
py( n-1 ); //先输出前边的数
for(i=0;i<N-n;i++ ) //输出前导空格,这里N是全局变量,表示最大的数
printf(" ");
for(i=1;i<n;i++ ) //1到n-1
printf("%d",i );
for(;i>=1;i-- )
printf("%d",i ); //n到1
printf("\n"); //换行
}
}

int main()
{
printf("input N :");
scanf("%d", &N );
py( N );
return 0;
}
IT孤鹜
2014-12-02 · TA获得超过4197个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3548万
展开全部
#include<stdio.h>
void print(int i,int n)
{
if(i==n){printf("%d",i); return ;}
    printf("%d",i);
    print(i+1,n);
    printf("%d",i);
}
int main()
{
  int n,i,j;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
for(j=1;j<=n-i;j++) printf(" ");
print(1,i);
printf("\n");
  }
  return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fluss2013
推荐于2018-02-28 · TA获得超过160个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:185万
展开全部
void display(int n,int nSpace)
{
    int i = 0;
    int j = nSpace - n;

    if (n < 1)
    {
        return;
    }

    display(n - 1, nSpace);

    if (j < 0)
    {
        j = 0;
    }

    while (i++ < j)
    {
        printf(" ");
    }

    i = 0;
    while (i < n)
    {
        printf("%d", ++i);
    }
    while (i > 1)
    {
        printf("%d", --i);
    }
    printf("\n");
    return;
}

 

追问
原谅我的无知  但是主函数怎么写
追答
#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d",&n);
    display(n,n);
    return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KummerWu
2014-12-02 · TA获得超过694个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:416万
展开全部

int max = 1;
void showTri(int h)
{
    int i = 0;
    int leftPadding = max - h;
    //递归显示上面的小三角形
    if(h>1)
    {
        showTri(h-1);
    }

    //显示最后一行
    for(i = 0;i<leftPadding;i++)
    {
        printf(" ");
    }
    for(i = 1;i<h;i++)
    {
        printf("%d",i);
    }
    for(i = h;i>0;i--)
    {
        printf("%d",i);
    }
    printf("\r\n");
}

int main(void)
{
    
    scanf("%d",&max);
    showTri(max);
}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyuehaifeng
2014-12-02
知道答主
回答量:4
采纳率:0%
帮助的人:5086
展开全部
void print(n) {

if (n < 1) return;

print (n-1);

//打印第n行数字

for ( int i = 1; i <= n; i++) printf("%d", i);
for (int i = n-1; i >= 1; i ++) printf("%d", i);
printf ("\n");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式