| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3863 人关注过本帖
标题:倒置的字母三角形
只看楼主 加入收藏
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
好,我来解释下:

我这里用了第一次循环来示范,你要是不明白可以自己推算下
程序代码:
#include <stdio.h>

int main(void)
{
    int n=0;
    printf("请输入行数:");
    scanf("%d", &n);
   
       //比如说我这里默认行数n为4  
  
    for(int i=n; i>0; i--)//用 i 控制行数。
    {
        char key;//定义key为中间的字符,
       
           //由于这个题目要求是倒三角的,所以在给定行数后由最底下的不变的字符A推算出最上面的中间数为D 
        key='A'+i-1; //也就是说key为第一行的中间的元素D
      
        for(int j=n; j>i; j--)//这个循环控制每一行的缩进,也就是空格。
        {
            printf("  ");
        }
      
        for(int j=i; j>0; j--)//这里控制每一行的中间字符相对应的左边字符 可以看到第一个为'D'+3='G'
        {
            char sign;
          
            sign=key+j-1;//可以看到,当j=1的时候,输出中间元素D
          
            printf("%c ", sign);
        }
      
        for(int j=1; j<i; j++)// 这里控制每一行中间字符相对应的右边字符,可以看到第一个为'D'+1=E
        {
            char sign;
          
            sign=key+j;
          
            printf("%c ", sign);
        }
        printf("\n");//这个控制一行结束后的换行
    }
  
    return 0;
}
小姑娘,没什么菜鸟不菜鸟的,到这里来的都是想学习或分享自己知识的人。
上次给别人看程序,指错地方了,等发表后再测试才发现地方不对,结果被一哥们鄙视了。。。。。
那也没事,我又不是什么大神,我只是知道点东西而已,并且乐于分享,开心就好

你得到了帮助,你很开心,我帮助了你,我也很开心,何乐不为呢?

Edsger Dijkstra:算法+数据结构=程序
2013-05-24 12:18
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:3 
就是用循环控制,然后向两边进行,中间是ABCD.......,论坛很多这样帖子

Maybe
2013-05-24 14:39
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
收藏
得分:3 
以下代码可以输出倒三角,但没能按要求输出字母,想好了在把代码上传。
#include<stdio.h>
void main()
{
    void dsj(int n);
    int m;
    printf("请输入倒三角的行数:");
    scanf("%d",&m);
    dsj(m);
}
void dsj(int n)
{
    int i,j,q;
    char a[30][30];
    printf("\n\n该倒三角如下图所示:\n");
    for(i=1;i<=n;i++)
    {
        for(q=0;q<=i;q++) if(q>0)
            printf("%c%c",' ',' ');
        for(j=0;j<=2*n-2*i;j++)
        {
            printf("%c ",a[i][j]='a');
        }
        printf("\n");
    }
   


}
2013-05-24 17:58
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
收藏
得分:0 
上次传的代码只能输出图案,想了好久,终于找到字母排列的规律,并把代码编出如下,试一试吧。

#include<stdio.h>
void main()
{
    void dsj(int n);
    int m;
    printf("请输入倒三角的行数:");
    scanf("%d",&m);
    dsj(m);
}
void dsj(int n)
{
    int i,j,q;
    char a[30][30];
    printf("\n\n行数为%d到三角的图形如下:\n\n",n);
    for(i=1;i<=n;i++)
    {
        for(j=0;j<=n-i;j++)
        a[i][j]=a[i][2*(n-i)-j]=65+2*(n-i)-j;
    }
for(i=1;i<=n;i++)
    {
        for(q=0;q<=i;q++) if(q>0)
            printf("%c%c",' ',' ');
        for(j=0;j<=2*(n-i);j++)
        {
            printf("%c ",a[i][j]);
        }
        printf("\n");
    }  
}
2013-05-27 10:46
快速回复:倒置的字母三角形
数据加载中...
 
   



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

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