#题目:
输入一个整型数x,打印出对应的大写字母金字塔
#额外:
将题中的大写字母转换成小写字母(输入字符h将大写字母转换成小写,输入q退出)
代码如下
#include<stdio.h>
#include <stdlib.h>
#define daxie 65 //A的ASCii码
#define xiaoxie 97 //a的ASCii码
void jin_out(); //打印函数初始化
int main()
{
int x;
int c;
char m[5];
char *str=&m[5];
c = daxie;
printf("请输入显示金字塔行数或输出模式\n");
while(1)
{
scanf("%s",str); //键盘输入字符串
if( *str=='h') //判断是否进入小写模式
{
c = xiaoxie;
}
else if(*str=='q')
{
c = daxie ;
}
else
{
x = atoi(str); //提取字符串中的数字并转换成整形数据
//int atoi(const char *nptr);
}
jin_out(x,c); //打印金字塔
}
return 0;
}
void jin_out(int x,int c)
{
int i;
int z=x<26?x:26; //行数上限26行
for(i=1;i<=z;i++)
{
int j=1;
for(int k=0;k<z-i;k++) //打印每行前面的空格使得字母居中
{
printf(" ");
}
for(;j<i;j++) //打印前面的字母
{
printf("%c",c-1+j);
}
for(;j>0;j--) //打印后面的字母
{
printf("%c",c-1+j);
}
printf("\n");
}
}
运行结果如下
图片:
初学c语言,请各位大佬指正