33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
void p6_5(void)
{
char ch = 0;
printf("Please input an uppercase letter:");
scanf_s("%c", &ch);
getchar();
int length = ch - 'A' + 1;
for (size_t i = 0; i < length; i++)
{
char temp = 'A' - 1; //为什么要 写这句?
for (size_t j = 0; j < (4 - i); j++) //这里为什么用 4-i ?
{
printf(" ");
}
for (size_t j = 0; j <= i; j++)
{
printf("%c", ++temp);
}
for (size_t j = 0; j < i; j++) //金字塔的降序打印部分不理解
{
printf("%c", --temp);
}
printf("\n");
}
return;
}
// A
// ABA
// ABCBA
// ABCDCBA
//ABCDEDCBA
#include <stdio.h>
#include <conio.h>
int n,h,s,i;
int main() {
while (1) {
printf("Please input a character(A-Z):");
fflush(stdout);
rewind(stdin);
scanf("%c",&n);
if ('A'<=n && n<='Z') {
for (h=0;h<n-'A'+1;h++) {
for (s=n-'A'-h;s>0 ;s--) printf(" " );
for (i='A' ;i<'A'+h;i++) printf("%c",i);
for (i='A'+h ;i>='A' ;i--) printf("%c",i);
printf("\n" );
}
getch();
break;
}
}
return 0;
}
void p6_5(void)
{
char ch = 0;
printf("Please input an uppercase letter:");
scanf_s("%c", &ch);
getchar();
int length = ch - 'A' + 1;
for (size_t i = 0; i < length; i++)
{
char temp = 'A' - 1; //写这句是赋初值
for (size_t j = 0; j < (4 - i); j++) //4表示金字塔的宽度为2*4 + 1,写4只能支持到E,也就是与A相差4,改成26可以支持全部字母
{
printf(" ");
}
for (size_t j = 0; j <= i; j++)//升序,打印金字塔左侧包含中间的字母 //仔细看升序与降序的坐标是不同的,i值表示当前层数序号
{
printf("%c", ++temp);//从A开始增加
}
for (size_t j = 0; j < i; j++) //降序,打印金字塔右侧不包含中间的字母
{
printf("%c", --temp);//从中间值减少到A
}
printf("\n");
}
return;
}