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

题目:



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

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

#include <stdio.h>

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;
}
结果:



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

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

例如:
(1)字符转数字:
#include <stdio.h>


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

return 0;
}


(2)数字转字符:
#include <stdio.h>


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

return 0;
}



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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值