标题:关于switch问题
只看楼主
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
结帖率:90%
已结贴  问题点数:10 回复次数:9 
关于switch问题
#include "stdio.h"
#include <math.h>
#include <iostream>
int main(void)
{
    int a;
    printf("please input interger number:\n");
    scanf("%c",&a);
    switch(a)
    {
             case 1 :printf("Monday\n");break;
             case 2 :printf("Tuesday\n");break;
             case 'c' :printf("Wednesday\n");break;
             case 4 :printf("Thursday\n");break;
             case 5 :printf("Friday\n");break;
             case 6 :printf("Saturday\n");break;
             case 7 :printf("Sunday\n");break;
             default:printf("error\n");
    }
    system("pause");
    return 0;
}

这个程序我输入c时,输出是error
但是我把int a;改为int a =0后,输出就是Wednesday了,这是什么原因
搜索更多相关主题的帖子: include please number 
2015-01-31 22:50
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:0 
程序代码:
#include <stdio.h>

int main(void)
{
    int a;
    printf("please input interger number:\n");
    scanf("%c", &a);
    switch (a) {
    case '1':
        printf("Monday\n");
        break;
    case '2':
        printf("Tuesday\n");
        break;
    case 'c':
        printf("Wednesday\n");
        break;
    case '4':
        printf("Thursday\n");
        break;
    case '5':
        printf("Friday\n");
        break;
    case '6':
        printf("Saturday\n");
        break;
    case '7':
        printf("Sunday\n");
        break;
    default:
        printf("error\n");
    }

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-01-31 23:26
civilherui
Rank: 2
来 自:陕西榆林
等 级:论坛游民
威 望:2
帖 子:67
专家分:97
注 册:2015-1-18
得分:2 
#include "stdio.h"
#include <math.h>               //这个编译预处理命令没用上可以删掉//
#include <iostream>
int main(void)
{
    char a;                      //这里定义a为字符型,而不是整形//
    printf("please input interger number:\n");
    scanf("%c",&a);
    switch(a)
    {
             case 1 :printf("Monday\n");break;
             case 2 :printf("Tuesday\n");break;
             case 'c' :printf("Wednesday\n");break;
             case 4 :printf("Thursday\n");break;
             case 5 :printf("Friday\n");break;
             case 6 :printf("Saturday\n");break;
             case 7 :printf("Sunday\n");break;
             default:printf("error\n");
    }
    system("pause");
    return 0;
}

我走向的将是机械、电子、编程的集成之路。
2015-01-31 23:37
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
得分:0 
回复 3楼 civilherui
我想知道为什么
2015-01-31 23:42
civilherui
Rank: 2
来 自:陕西榆林
等 级:论坛游民
威 望:2
帖 子:67
专家分:97
注 册:2015-1-18
得分:2 
还可以这样改
#include "stdio.h"
#include <math.h>
#include <iostream>

int main(void)
{
    int a;
    a=(char)a;         //把a给强制成字符型//
    printf("please input interger number:\n");
    scanf("%c",&a);
    switch(a)
    {
             case 1 :printf("Monday\n");break;
             case 2 :printf("Tuesday\n");break;
             case 'c' :printf("Wednesday\n");break;
             case 4 :printf("Thursday\n");break;
             case 5 :printf("Friday\n");break;
             case 6 :printf("Saturday\n");break;
             case 7 :printf("Sunday\n");break;
             default:printf("error\n");
    }
    system("pause");
    return 0;
}

我走向的将是机械、电子、编程的集成之路。
2015-01-31 23:45
civilherui
Rank: 2
来 自:陕西榆林
等 级:论坛游民
威 望:2
帖 子:67
专家分:97
注 册:2015-1-18
得分:0 
回复 4楼 ybyc9999
额……这个其实我也不懂,我六天前才刚开始自学c语言。
但是可能和这个有关,送你一张ASCII码表:这是字符型与整形的转换。
0 NUL(null) 空字符

1 SOH(start of headline) 标题开始

2 STX (start of text) 正文开始

3 ETX(end of text) 正文结束

4  EOT (end of transmission) 传输结束

5  ENQ (enquiry) 请求

6  ACK (acknowledge) 收到通知

7  BEL (bell) 响铃

8  BS (backspace) 退格

9 HT (horizontal tab) 水平制表符

10 LF (NL line feed, new line) 换行键

11 VT (vertical tab) 垂直制表符

12 FF (NP form feed, new page) 换页键

13 CR (carriage return) 回车键

14 SO (shift out) 不用切换

15 SI (shift in) 启用切换

16 DLE (data link escape) 数据链路转义

17 DC1 (device control 1) 设备控制1

18 DC2 (device control 2) 设备控制2

19 DC3 (device control 3) 设备控制3

20 DC4 (device control 4) 设备控制4

21 NAK (negative acknowledge) 拒绝接收

22 SYN (synchronous idle) 同步空闲

23  ETB (end of trans. block) 传输块结束

24  CAN (cancel) 取消

25  EM (end of medium) 介质中断

26  SUB (substitute) 替补

27  ESC (escape) 换码(溢出)

28  FS (file separator) 文件分割符

29  GS (group separator) 分组符

30  RS (record separator) 记录分离符

31  US (unit separator) 单元分隔符

32 space 空格

33 !

34 "

35 #

36 $

37 %

38 &

39 '

40 (

41 )

42 *

43 +

44 ,

45 -

46 .

47 /

48 0

49 1

50 2

51 3

52 4

53 5

54 6

55 7

56 8

57 9

58 :

59 ;

60 <

61 =

62 >

63 ?

64 @

65 A

66 B

67 C

68 D

69 E

70 F

71 G

72 H

73 I

74 J

75 K

76 L

77 M

78 N

79 O

80 P

81 Q

82 R

83 S

84 T

85 U

86 V

87 W

88 X

89 Y

90 Z

91 [

92 \

93 ]

94 ^

95 _

96 `

97 a

98 b

99 c

100 d

101 e

102 f

103 g

104 h

105 i

106 j

107 k

108 l

109 m

110 n

111 o

112 p

113 q

114 r

115 s

116 t

117 u

118 v

119 w

120 x

121 y

122 z

123 {

124 |

125 }

126 ~

127 DELdelete 删除

[1]

我走向的将是机械、电子、编程的集成之路。
2015-01-31 23:52
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:6 
    int a;
    printf("please input interger number:\n");
    scanf("%c",&a);
    a=a&0xff;  //在你的代码里加上这一句吧,因为 scanf("%c",&a)是接受一个字节字符,int有4个字节,只有最低位字节接受了输入值。
               //高位3个字节未初始化,是随机数据,必须清0才能得到正确值.
               //另根据你现行代码,输入Ctrl+a Monday、Ctrl+b Tuesday、c Wednesday Ctrl+d Thursday...
    switch(a)  

能编个毛线衣吗?
2015-02-01 00:04
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
得分:0 
回复 7楼 wmf2014
厉害
#include "stdio.h"
#include <math.h>
#include <iostream>
int main(void)
{
    int a=256;
    printf("please input interger number:\n");
    scanf("%c",&a);
    switch(a)
    {
             case 1 :printf("Monday\n");break;
             case 2 :printf("Tuesday\n");break;
             case 'c' :printf("Wednesday\n");break;
             case 4 :printf("Thursday\n");break;
             case 5 :printf("Friday\n");break;
             case 6 :printf("Saturday\n");break;
             case 7 :printf("Sunday\n");break;
             default:printf("error\n");
    }
    system("pause");
    return 0;
}
当a是255就可以,256就不行了,和你说的一样
2015-02-01 00:17
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
得分:0 
回复 6楼 civilherui
还是谢谢
2015-02-01 00:18
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
得分:0 
回复 7楼 wmf2014
。。。。

[ 本帖最后由 code力力 于 2015-3-7 18:44 编辑 ]

你醒了?快起来敲代码!!
2015-02-03 18:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-441673-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031424 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved