| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 736 人关注过本帖, 1 人收藏
标题:不明白的金子塔输出,是否能够再简化代码
只看楼主 加入收藏
han1115
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2012-8-11
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:9 
不明白的金子塔输出,是否能够再简化代码
让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这样的金字图案:
    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA
求简化,只能用for嵌套循环。
附上我的代码:
程序代码:
#include<stdio.h>
int main(void)
{
    const int L=5;
    const int K=4;
    int js,js1,js2,js3;
    char nr,nr2;
    printf("请输入一个字母:");
    scanf("%c",&nr);
    nr2=nr;
    for(js=0;js<L;js++)
    {
        for(js1=0;js1<K-js;js1++)
            printf(" ");
        for(js2=0;js2<L-js1;js2++)
            printf("%c",nr++);
        nr=nr-2;
        for(js3=0;js3<js;js3++)
            printf("%c",nr--);
        nr=nr2;
        printf("\n");
    }
    return 0;
}
搜索更多相关主题的帖子: 能够 用户 金子塔 
2012-10-24 20:20
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:3 
考虑用递归试试?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-10-26 07:12
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:0 
感觉已经是最简的了
递归还得用函数,代码行数肯定会多
2012-10-26 13:02
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
收藏
得分:3 
建议用二维数组写一个试试

马马虎虎 不吝赐教 我是路过蹭分滴
2012-10-26 14:28
yscajf
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2012-3-20
收藏
得分:3 
这还能精简?感觉很精简 了
2012-10-26 16:18
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
呵呵,本来不想打扰你们玩的,但怎么就都认为不能精简了呢?

给你们示范一个。最好亲自编译执行看一下效果。
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int a, i, j;
    printf("请输入一个字母:");
    a = toupper(getchar()) - 'A';
    for(i = 0; i <= a; i++, puts(""))
    for(j = 0; j <= a + i; j++)
    putchar(j < a - i ? ' ' : 'A' + i - abs(a - j));
    return 0;
}

重剑无锋,大巧不工
2012-10-26 21:06
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:3 
太厉害了,我辈还得加油啊
谢谢指点!
2012-10-26 22:07
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:3 
回复 6楼 beyondyf
顶个
2012-10-26 22:53
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:3 
学习来了

WE GO
2012-10-30 08:08
c语言DYY
Rank: 2
等 级:论坛游民
帖 子:51
专家分:44
注 册:2012-10-21
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int i,j;         //控制字母
  int h=26,k;         //控制空格
  char ch='A';
  for(i=1;i<=26;i++)
  {
        h--;
            { for(k=0;k<=h;k++)  printf(" ");    //一个空格
               
            }
        for(j=0;j<i;j++)
            printf("%c ",ch+j);     //加一个空格
        printf("\n");
  }
  system("PAUSE");   
  return 0;
}


我自己写的
2012-11-11 01:10
快速回复:不明白的金子塔输出,是否能够再简化代码
数据加载中...
 
   



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

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