ybyc 发表于 2015-1-31 22:50:57

switch问题

本帖最后由 ybyc 于 2015-2-1 01:05 编辑

#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了,这是什么原因

百日维新 发表于 2015-2-1 00:23:43

本帖最后由 百日维新 于 2015-2-1 00:28 编辑

#include "stdio.h"
#include <math.h>
#include <iostream>
int main(void)
{
    int a   ;

    printf("int 的长度:%d\n",sizeof(int));
    printf("char的长度:%d\n",sizeof(char));
    //int 是4字节 ,char 是1字节 如果 a = 0 ,其他位就会被0填充
    //输入a= c 后, a 的值就是99 ,

    printf("please input interger number:\n");
    //如果没有a = 0 其他三字节就是随机数,

    printf("a的值:%d\n 输入a :",a);

    scanf("%c",&a);
    //a 的值不是99
    printf("a的值:%d",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-2-1 00:38:36

本帖最后由 百日维新 于 2015-2-1 00:47 编辑

scanf("%c",&a);
这种输入格式之后影响到一个字节
scanf("%d",&a);
这种输入格式之后影响到四个字节






百日维新 发表于 2015-2-1 00:44:11

另一种输入

ybyc 发表于 2015-2-1 00:47:48

明白了谢谢

百日维新 发表于 2015-2-1 00:50:49

ybyc 发表于 2015-2-1 00:47
明白了谢谢

鱼同学客气了,快点采纳给我加点荣誉:lol:

ybyc 发表于 2015-2-1 01:26:15

百日维新 发表于 2015-2-1 00:50
鱼同学客气了,快点采纳给我加点荣誉

我不会用,怎么采纳

百日维新 发表于 2015-2-1 05:12:34

ybyc 发表于 2015-2-1 01:26
我不会用,怎么采纳

回复旁边的评分可以加荣誉!

freeparty 发表于 2015-2-1 10:04:21

路过顺便看下{:1_1:}

mhhnjuol 发表于 2015-2-13 08:32:30

虽然这原理很重要,但楼主尽量不要这么实验,会影响自己写代码正确率:sweat::sweat:
页: [1]
查看完整版本: switch问题