C语言经典解析100例 的问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 06:37:56
【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,very beautiful!
1.程序分析:字符共有256个。不同字符,图形不一样。
2.程序源代码:
#include "stdio.h"
main()
{
char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);
}
题目我都没看懂,为什么我输出的是乱码呢? 到底最后输出的是什么 我 在VC++2008下 输出是乱码 有谁知道怎么回事
但是我输出的是乱码 如何解决

char取值范围-128到127
a = 176, b = 219
明显变复数了

%c%c连在一起被解释成UNICODE估计输出的是中文

出现乱码是因为题目使用的是扩展ASCII字符集,可以表示255个字符。
而编译器一般认为char类型是标准ASCII码,只能表示127个字符。

你将
char a=176,b=219;
改为
unsigned char a=176,b=219;
试试

实在不行,就换个编译器试试

不同的运行环境结果可能不同。VC会将a转换成char类型的,在转换过程中由于溢出原因,结果可能是乱码;在TC下运行,176和219对应的是ASCII码,是两个图案型字符。最后结果如下图片:

靠 谁说的有256个字符啊
ASCII码一共127个 1字节 8位 第一位是符号位 所以就7位有用