| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4292 人关注过本帖
标题:金字塔问题
只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:5 回复次数:5 
金字塔问题
要打印出类似于
       A
      ABA
     ABCBA
    ABCDCBA
这样的金字塔,帮忙看一下错在哪
#include <stdio.h>
int main(void)
{
    int i,j;
    char ch,n;

    scanf("%d",&ch);
    n=ch-'A';
    while(ch%2!=0)
    {
        for(i=0;i<n+1;i++)
        {
            for(j=0;j<n;j++)
                printf("");
            for(j=0;j<n+1;j++)
                printf("%c",ch--);
            for(j=0;j<n+1;j++)
                printf("%c",ch++);
        }
    };
    return 0;
}
搜索更多相关主题的帖子: include 金字塔 
2011-08-13 11:23
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:0 
程序代码:
#include <stdio.h> 
int main(void) 
{ 
    int i,j,n;
    char c='A';
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            printf(" ");
        }
        for(;j<n;j++)
        {
            putchar(c++);
        }
        c--;
        while(c>'A')
        {
            putchar(--c);
        }
        printf("\n");
        c='A';
    }
    return 0;
}

A real warrior never quits.
2011-08-13 12:51
lulup
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2011-7-11
收藏
得分:0 
程序代码:
#include <stdio.h>
int main()
{
     int i;
     char ch,n;
     printf("输入数字n:\n");
     scanf("%d",&n);
     ch='A';
     for(i=0;i<n;i++)
       { printf("%*s",n-i+1,"");
           while(ch<'A'+i){printf("%c",ch);ch++;}
           while(ch>='A') {printf("%c",ch);ch--;}
         printf("\n");
         ch++;  
     }
        getch();
        return 0;

 
}
最近一直再学,自己按照问题练了哈。。
2011-08-13 13:15
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
程序代码:
#include <stdio.h> 
int main(void) 
{ 
    int i,j;
    char ch,n,c;

     scanf("%c",&ch);
     n=ch-'A'+1;
     c='A';

     for(i=0;i<n;i++)
     {
         for(j=0;j<n-i;j++)
             printf(" ");
         for(j=0;j<=(2*i+1)/2;j++)
             printf("%c",c++);
         c-=1;
         for(j=0;j<(2*i+1)/2;j++)
             printf("%c",--c);
         printf("\n");
         c='A';
     }                                         
  return 0;
}
/*   A
    ABA
   ABCBA
  ABCDCBA
  */
2011-08-13 13:24
韩54521风
Rank: 4
等 级:业余侠客
帖 子:75
专家分:212
注 册:2011-6-11
收藏
得分:5 
#include <stdio.h>
int main(void)
{
    int i,j;
    char ch,n;

    scanf("%d",&ch);
    n=ch-'A';
    while(ch%2!=0)        有什么用啊这个??
    {
        for(i=0;i<n+1;i++)  应该是i<n,如果前边是i=1;这里才应该是i<n+1;
        {
            for(j=0;j<n;j++)
                printf("");
            for(j=0;j<n+1;j++)
                printf("%c",ch--);这里不对啊,这里应该是要字母由A到输入的字母为止的
            for(j=0;j<n+1;j++)
                printf("%c",ch++);  这里相应的也就不对了
        }
    };即使有用,也要注意,后边不应该有分号。。
    return 0;
}



根据你这个思想(使用一个外部循环来处理行,在每一行中使用三个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母)可以写成如下的程序:
#include<stdio.h>
int main(void)
{
    int a;
    char i,j,k;

    printf("请输入字母: ");
    scanf(" %c",&i);                  /* 输入的字母用 i */
    for(k='A' ; k<=i ; k++)           /* 输入的字母 i 減掉 A 的数目就是要做的行数 */
    {
        for(a=0 ; a<i-k ; a++)
            printf(" ");              /* 印出空白字元 */

        for(j='A' ; j<=k ; j++)
            printf("%c",j);           /* 递增印出字母 */
        
        for(j=k-1 ; j>='A' ; j--)
            printf("%c",j);           /* 递減印出字母 */
        
        printf("\n");
    }
    return 0;
}
2011-08-13 13:28
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
程序代码:
int i,n,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{for(j=i;j<n;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%c",j+'A');
for(j=i-1;j>=0;j--)
printf("%c",j+'A');
printf("\n");
}
2011-08-13 14:10
快速回复:金字塔问题
数据加载中...
 
   



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

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