C要命啊!!崩溃了!救命啊!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/12 18:55:02
#include<stdio.h>
void main()
{
int i,j;
switch(scanf("%d",&i))
{
case 1:printf("a");break;
case 2:printf("b");break;
case 3:printf("c");break;
case 4:printf("d");break;
case 5:printf("e");break;
case 6:printf("f");break;
default:printf("Error");
}

}
为什么无论输入什么,都是输出a!!!!!!

呵呵,看看这个兄弟!scanf的返回值的问题就可以解决你的问题啦!

scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。

你想你的switch(scanf("%d",&i)) 返回值是多少啊?
所以你的输出总是“a”啊!

知道原因,你自己就可以修改啊!

#include<stdio.h>
void main()
{
int i,j;
scanf("%d",&i);
switch(i)
{
case 1:printf("a");break;
case 2:printf("b");break;
case 3:printf("c");break;
case 4:printf("d");break;
case 5:printf("e");break;
case 6:printf("f");break;
default:printf("Error");
}

}