求解,为什么第一个switch不会执行?
各位大佬,为什么第一个switch不会执行?#include<stdio.h>
int main()
{
char money;
char m = { 'a','b','c','d','e','f','g','h','i','j'};
char z = { 'S','B','Q','W','Y' };
char n;
int k, l, ch, w, x = 0;
for (k = 0, w = 0; k < 9; k++, w++)
{
money = getchar();
if (money == '\n')
break;
}
ch = w;
for (l = 0, k = 0; l < w; l++)
{
switch (money)
{
case 0:x = 0; break;
case 1:x = 1; break;
case 2:x = 2; break;
case 3:x = 3; break;
case 4:x = 4; break;
case 5:x = 5; break;
case 6:x = 6; break;
case 7:x = 7; break;
case 8:x = 8; break;
case 9:x = 9; break;
}
n = m;
k++;
switch (ch)
{
case 9:n = z; break;
case 8:
case 4:n = z; break;
case 7:
case 3:n = z; break;
case 6:
case 2:n = z; break;
case 5:n = z; break;
default:n = ' ';
}
k++;
ch--;
}
for (l = 0; l < k; l++)
{
printf("%c", n);
}
return 0;
} 本帖最后由 jhq999 于 2021-11-23 17:22 编辑
ASCII码对照表
0000 0000 0 00 NUL ␀ 空字符(Null)
0000 0001 1 01 SOH ␁ 标题开始
0000 0010 2 02 STX ␂ 本文开始
0000 0011 3 03 ETX ␃ 本文结束
0000 0100 4 04 EOT ␄ 传输结束
0000 0101 5 05 ENQ ␅ 请求
0000 0110 6 06 ACK ␆ 确认回应
0000 0111 7 07 BEL ␇ 响铃
0000 1000 8 08 BS ␈ 退格
0000 1001 9 09 HT ␉ 水平定位符号 因为Money[]是字符数组,switch(money)用的是他的ascll码值,数组里ascll码值都大于10。 第一个switch传入的是money,即money,然而money是a,a对于的ASCII是97,故条件不成立,所以不执行。
页:
[1]