| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1054 人关注过本帖
标题:求助~~~~金字塔问题()问题已解决,谢谢热心回复的大虾)
只看楼主 加入收藏
wtujoxk
Rank: 2
等 级:论坛游民
帖 子:17
专家分:72
注 册:2012-2-13
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:17 
求助~~~~金字塔问题()问题已解决,谢谢热心回复的大虾)
初学C,在书中看到这一问题,思来想去,无果~~~~
求助大虾~~~~
图片附件: 游客没有浏览图片的权限,请 登录注册



问题已解决,谢谢热心回复的大虾,虽然三楼是根据二楼的代码改进而来,但是三楼的答案最符合要求
五楼也给出了能得到答案的例程,但是我还没有学到那里去,所以分给了最符合答案的那个大虾~~~

根据各位大虾提供的思路,自己慢慢的也写了个:
程序代码:
[color=#0000FF]#include <stdio.h>

int main(void)
{
    char i, j, k, m, x, num;
   
    printf("请输入一个大写字母:");
    scanf("%c", &x);
    num = x - 'A';

    for(i = 0; i <= num; i++)
    {
        for(j = 0; j <= num-i; j++)
            printf(" ");
        for(k = 0; k <= i; k++)
            printf("%c", 'A'+k);
        for(m = i; m >= 1; m--)
            printf("%c", 'A'+m-1);
        printf("\n");
    }

    return 0;
}
[/color]


[ 本帖最后由 wtujoxk 于 2012-2-15 10:39 编辑 ]
搜索更多相关主题的帖子: 金字塔 
2012-02-13 23:34
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:0 
这一题思路和输出平行四边形差不多,下面是输出四边形的代码,你参考一下。
#include<stdio.h>

int main()

{

int a,b,p,k,i,j,n;

scanf("%d",&n);

for(a=1;a<=n;a++)

{
  
for(b=1;b<=n-a;b++)

  printf(" ");

  for(p=1;p<=2*a-1;p++)
  
printf("*");
 
 printf("\n");
}

for(k=1;k<=n-1;k++)

{
 
 for(i=1;i<=k;i++)
 
 printf(" ");

  for(j=1;j<=2*n-1-2*k;j++)

  printf("*");
  
printf("\n");

}

return 0;

}(以前写的)
2012-02-14 06:40
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
收藏
得分:5 
根据2楼代码 改了下
代码:  
程序代码:
#include<stdio.h>
void main()
{
    int n,i,j,p,q;
    char X;
    scanf("%c",&X);
    n=X-'A'+1;
    printf("%d\n",n);
    for(i=0;i<n;i++)
    {    for(j=0;j<n-i;j++)
            printf(" ");
        for(p=0;p<n-j+1;p++)
            printf("%c",'A'+p);
        for(q=0;q<i;q++)
            printf("%c",'A'+p-2-q);
        printf("\n");
    }
} 







[ 本帖最后由 ljl123970 于 2012-2-14 11:54 编辑 ]
2012-02-14 11:52
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
回复 2楼 天天涯涯
二楼简化下:
程序代码:
#include "stdio.h"
void main()
{
    int n,i,j,k;
    printf("please input a number:\n");
    scanf("%d",&n);
    for(i = 1;i <= n;i++)
     {
       for(j = 1;j <= n-i;j++) 
         printf(" ");  
       for(k = 1;k <= 2*i-1;k++)
         printf("*");
       printf("\n");   
     }
    for(i = n-1;i >= 1;i--)
     {
       for(j = 1;j <= n-i;j++) 
         printf(" ");  
       for(k = 1;k <= 2*i-1;k++)
         printf("*");
       printf("\n");   
     }  
}
2012-02-14 11:57
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
我贴个:
程序代码:
#include <stdio.h>
#include <math.h>

int main(void)
{
    int Len, Xcoor, Ycoor, Sum; // 定义半长(即高),横坐标,纵坐标,坐标绝对值之和
    char Letter;     // 定义要输入的字母

    do{
        printf("请输入一个大写字母:");
        scanf("%c", &Letter);
        getchar();
    }while(Letter < 'A' || Letter > 'Z');  // 筛选输入

    Len = Letter - 'A';

    for(Ycoor = Len; Ycoor >= 0; Ycoor--)
    {
      for(Xcoor = -Len; Xcoor <= Len; Xcoor++)   
        {
            Sum = abs(Xcoor) + abs(Ycoor) ;   
               if(Sum <= Len)
                  printf("%c", Letter - Sum);     // 寻求字母分布规律
               else
                   printf(" ");      
        }
      printf("\n");
    }
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册




[ 本帖最后由 有容就大 于 2012-2-14 12:53 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-02-14 12:48
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
楼上果断顶起
2012-02-14 13:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看清楚題目要求!不按需求合同寫程序有什麼後果,到工作時你們就知道了。明白人家為什麼要有這樣的需求?

授人以渔,不授人以鱼。
2012-02-14 13:51
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:0 
#include <stdio.h>
#include <ctype.h>
int main(void)
{
    int i,j,m,n;
    char ch;
    printf("Enter the letter");
    printf("(<A or >Z to quit):\n");
    scanf("%c",&ch);
    while(isupper(ch))
    {
            for(i=0;i<=ch-'A';i++)
            {
                for(j=ch-'A'-i;j>0;j--)
                printf(" ");
                for(m=0;m<i;m++)
                printf("%c",'A'+m);
                for(n=i;n>=0;n--)
                printf("%c",'A'+n);
                printf("\n");
            }
            getchar();
            scanf("%c",&ch);
    }
    printf("bye");
    return 0;
}
2012-02-14 15:05
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 7楼 TonyDeng
嗯,如果按照提示来做究竟是要说明个什么知识点呢。

梅尚程荀
马谭杨奚







                                                       
2012-02-14 16:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
除了提示中最後一點涉及兼容性設計之外(應如何考慮按提示看相關部分),其餘主要是看你思維的慎密性如何。你仔細看題目的敘述,想一下如果輸入的是A或Z,那麼A、Z必須在中間,兩側如何遞增遞減?到底接受輸入的範圍在哪裡,最好想清楚。比如輸入B、D、F之類呢?

授人以渔,不授人以鱼。
2012-02-14 16:26
快速回复:求助~~~~金字塔问题()问题已解决,谢谢热心回复的大虾)
数据加载中...
 
   



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

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