c语言求高手解答,让程序要求用户输入一个大写字母,使用嵌套循环产生下面这样的金字塔图案。

A
ABA
ABCBA
。。。。。。。。

双重循环

#include <stdio.h>
#include<stdlib.h>
 
void PrintPyramid(char c);
 
 main()

    char n;
 
    printf("Please input a capital:\n");
    scanf("%c",&n);
    PrintPyramid(n);
 
    system("pause");
 }
 
//函数功能:输出金字塔
 void PrintPyramid(char c)
 {
    int i=65 , j ;
 
    //第一重循环 :控制行的数量
    for(;i<=c;i++)
    {
        //第二重循环1:控制顺序输出ABC(即前n位字母)
        for(j=65;j<=i;j++)
            printf("%c",j);
 
        //第二重循环2:控制逆序输出BA(即后n-1位字母)
        for(j=i-1;j>=65;j--)
            printf("%c",j);
 
        printf("\n");
    }
 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-14
等腰三角形的程序
#include<stdio.h>
#define N 10
#include<stdio.h>
void main()
{
int i,j,n=13;
printf("N=");
while(n>12)
scanf("%d",&n); /*控制输入正确的值以保证屏幕显示的图形正确*/
for(i=0;i<=n;i++) /*控制输出N行*/
{
for(j=0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
printf("\n");
}
}

int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/
z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
return z;
}
这个问题与杨辉三角的求法相似,你可以参考一下这个程序。
第2个回答  2018-02-21
#include <stdio.h>
char c;
int main()
{
scanf("%c",&c);
for (int i=1;i<=c-'A'+1;i++)
{
for (int j=0;j<i;j++) printf("%c",'A'+j);
for (int j=i-1;j;j--) printf("%c",'A'+j-1);
printf("\n");
}
}

你看看是不是这个意思

第3个回答  2017-08-15
#include<stdio.h>
void f(char *a, char *b)
{

while(*a++);
a--;
while(*a++=*b++);

}
void main()
{
int i, j;
char c, x;
scanf("%c", &c);
for(i=1; i<=c-'A'+1; i++)
{
x = 'A';
for(j=1; j<=(2*i-1)/2;  j++)
printf("%c", x++);
for(;j<=2*i-1; j++)
printf("%c", x--);
printf("\n");
}
}

第4个回答  2020-02-16
#include <stdio.h>
int main()
{
int i,m,n;
char t,letter;
printf("请输入大写字母A—Z\n");
scanf("%c",&letter);
printf("您所要的金字塔如下:\n");
for(i=0;i<letter-64;i++)
{
for(t='A',m=letter-64;t<66+i;t++)
{
printf("%*c",m-i,t);
if(t==65) break;
}
for(t='A';t<65+i;t++) printf("%c",t+1);
for(t='A',n=1;t<65+i;t++,n++) printf("%c",65+i-n);
printf("\n");

}
}
相似回答