请教高手回答个C语言问题。

来源:百度知道 编辑:UC知道 时间:2024/07/03 03:41:14
如下程序:
int main(void)
{
int a=0;
scanf("%d",&a);
if (a=1 )
{
printf("aa");
}
else
{
printf("11");
}
getch();
return 0;
}
在这个程序里面,为什么我输入什么(包括数字和字母)都会输出“AA”?
int main(void)
{
char a='q';
scanf("%c",&a);
if (a='a' )
{
printf("aa");
}
else
{
printf("11");
}
getch();
return 0;
}
也是一样的。
到底哪个地方出问题了!!?!?!!/
给点详细的回答,顺便帮忙改正下,我是新手,刚学的。

这个问题很简单,原因就是你的判断条件,if(a=1)和if(a='a'),写错了。应该写成if(a==1)和if(a=='a')。里面应该是等号,而不是赋值号。否则,当语句执行到这条语句是就自动将a赋值为1或'a'。所以无论你输入什么都一个结果!写程序时一定要仔细!

这里if(a=1)
是把1的值付给a,不是判断a是否等于1,所以不管你输入什么,a=1都是真的,都执行这个分支else分支没执行
应该if(a==1)

下面也类似阿

一眼就看到你if里面用=,应该是==号