| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 451 人关注过本帖
标题:这道题有没有办法简化
只看楼主 加入收藏
我是氧化钙
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
这道题有没有办法简化
编写程序实现输入小于10的整数n,输出如下所示由数字组成的菱形(图中n=5)         
           1
          121
         12321
        1234321
       123454321
        1234321
         12321
          121
           1
搜索更多相关主题的帖子: 办法 
2010-05-12 01:01
我是氧化钙
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-2
收藏
得分:0 
我的想法是用四个循环,第一个来控制前五行,第二个来控制后四行,第三个来控制每行从第一个字到中间的字,第四个用来控制后面的……
2010-05-12 01:04
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
你的想法是可行的。
如果你要其他的想法的话,我可以告诉你一个,但实现起来不一定就比较简单。

你可以定义一个二维数组,并初始化所有的元素为0,然后根据这个例子的规律把,数组的相应的位置赋值为相应的数值。
然后把这个数组输出,在输出前判断相应元素是否是0,如果是0,那就输出一个空格,如果不是就输出相应的数字。

不知道说清楚了没有?
楼主可以尝试着实现看看。祝你成功!


南国利剑
2010-05-12 01:24
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:10 
一维实现
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,i,j,k,m,s;
    scanf("%d",&n);
    for(i=0;i<2*n-1;i++)//5
    {
        m=n-1-abs(n-1-i);
        s=1,j=2*m+1,k=abs(n-i-1);
        while(k--)
            printf(" ");
        while(j--)
        {
            printf("%d",s);
            if(j<=m)
                s--;
            else s++;
        }
        printf("\n");
    }
    return 0;
}

www.
2010-05-13 09:48
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 4楼 jcslt
不错!

南国利剑
2010-05-20 00:40
快速回复:这道题有没有办法简化
数据加载中...
 
   



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

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