| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2115 人关注过本帖
标题:百思不得其解,到底错在哪?
只看楼主 加入收藏
我是一个黑客
Rank: 1
等 级:新手上路
帖 子:69
专家分:2
注 册:2018-6-11
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:6 
百思不得其解,到底错在哪?
题目和我写的源码贴在此处,求大神帮我看看我错在哪
本题要求实现函数输出n行数字金字塔。
函数接口定义:
void pyramid( int n );

其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注
意每个数字后面跟一个空格。
裁判测试程序样例:
#include <stdio.h>

void pyramid( int n );

int main()
{   
    int n;

    scanf("%d", &n);
    pyramid(n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:
5

输出样例:
    1
   2 2
  3 3 3
 4 4 4 4
5 5 5 5 5



我写的源码:
#include <stdio.h>

void pyramid( int n );

int main()
{   
    int n;

    scanf("%d", &n);
    pyramid(n);

    return 0;
}
void pyramid(int n)
{
    int m, i,j;
    m=n;
   
for(i=1;i<=n;i++)
{

for(j=m;j>=1;j--)

printf(" ");
m--;
printf("%d",i);
if("i>1")
{

for(;i>1;i--)
printf(" %d",i);
printf("\n");
}
else
printf("\n");
}

}
搜索更多相关主题的帖子: 函数 void int for printf 
2018-08-28 00:01
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:9 
void pyramid(int n)
{
    int i,j;
    for(i=1; i<=n; i++)
    {
        for(j=n-i; j>0; j--)
            printf(" ");
        for(j=i; j>0; j--)
            printf("%d ", i);
        printf("\n");
    }
}
2018-08-28 04:33
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:11 
将语句“for(;i>1;i--)”改成“for(j=i;j>1;j--)”即可。
错误原因是嵌套循环使用了同一个循环变量i,导致死循环了。

能编个毛线衣吗?
2018-08-28 08:12
我是一个黑客
Rank: 1
等 级:新手上路
帖 子:69
专家分:2
注 册:2018-6-11
收藏
得分:0 
回复 2楼 吹水佬
谢谢!
2018-08-28 09:23
我是一个黑客
Rank: 1
等 级:新手上路
帖 子:69
专家分:2
注 册:2018-6-11
收藏
得分:0 
回复 3楼 wmf2014
终于找到问题所在了,谢谢!
2018-08-28 09:23
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:0 
#include <stdio.h>

 void pyramid( int n );

 int main()
 {   
     int n;

     scanf("%d", &n);
     pyramid(n);

     return 0;
 }
 void pyramid(int n)
 {
     int m,i,j;   
 for(i=0;i<n;i++)
 {
     for(j=n-i;j>0;j--){
         printf(" ");}
     for(m=0;m<=i;m++){
         printf("%d",i+1);
         if(i!=0){
             printf(" ");}
     }
     printf("\n");
 }
 }
2018-08-30 23:03
我是一个黑客
Rank: 1
等 级:新手上路
帖 子:69
专家分:2
注 册:2018-6-11
收藏
得分:0 
回复 6楼 豆豆的滴
谢谢!
2018-09-04 19:59
快速回复:百思不得其解,到底错在哪?
数据加载中...
 
   



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

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