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: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:47 编辑
scanf("%c",&a);
这种输入格式之后影响到一个字节
scanf("%d",&a);
这种输入格式之后影响到四个字节
另一种输入 明白了谢谢 ybyc 发表于 2015-2-1 00:47
明白了谢谢
鱼同学客气了,快点采纳给我加点荣誉:lol: 百日维新 发表于 2015-2-1 00:50
鱼同学客气了,快点采纳给我加点荣誉
我不会用,怎么采纳 ybyc 发表于 2015-2-1 01:26
我不会用,怎么采纳
回复旁边的评分可以加荣誉! 路过顺便看下{:1_1:} 虽然这原理很重要,但楼主尽量不要这么实验,会影响自己写代码正确率:sweat::sweat:
页:
[1]