输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)

题目:

输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第1张图片


先来看一下源程序和运行结果:

//作者:wsg
//时间:2017年8月11日

#include 

int main(int argc, char *argv[])
{
	char ch;

LOOP:
	printf("请输入一个大写字母:\n");
	
	scanf("%c", &ch);
	while((getchar()) != '\n'); //scanf()的行缓冲
	
	int num = ch; 将字符转换成ASCII码对应的数字		
	if(num>=65 && num<=90) //是大写字母才执行以下程序(大写字母A-Z对应的ASCII码值为65-90)
	{
		printf("该字母的ASCII值为:%d\n", num);
		int i,j;
		
		for(j=65; j<=num; j++) //从第一个字母开始,循环递增打印
		{
			for(int k=num-j; k>=0; k-- )  //判断应该输入的空格
			{
				printf(" ");
			}
			
			for(i=65; i<=j; i++) //打印正序输出,如ABCD
			{
				printf("%c",i);	
			}  
			
			for(i=j-1; i>=65; i--) //打印逆序输出,如CBA
			{
				printf("%c",i);
			}
			
			printf("\n");
		}
	}
	else
	{
		printf("ERROR!请重新输入!\n");
		printf("\n");
	}
	goto LOOP; //goto 无条件转换,实现程序不会自动退出的功能
	return 0;
}
结果:

输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第2张图片

输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第3张图片


输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第4张图片

本程序主要的部分是3个for循环,空格+正序+逆序输出保证了每一行结果的正确性。

还有一个知识点就是字符可以自动转为成相应的ASCII码值,整形数字也可以自动转换成ASCII码表对应的字符。

例如:
(1)字符转数字:
#include


int main()
{
char ch = getchar();
printf("ASCII码对应的数字是:%d\n", ch);

return 0;
}

输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第5张图片

(2)数字转字符:
#include


int main()
{
int nu;
scanf("%d", &nu);
printf();

return 0;
}

输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第6张图片


最后的最后,附上ASCII码表:

输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第7张图片输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第8张图片输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)_第9张图片


 
  
 
 

你可能感兴趣的:(C语言)