c语言if嵌套内层失效

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:32:31
/*测试多层循环控制*/

#include "stdio.h"
#include "conio.h"

void main()
{
char a,b,c;

printf("Input a:");
scanf("%c",&a);
printf("Input a complet!\n");

if(a='a')
{
printf("0\nInput b:");
scanf("%c",&b); //Flag1;
printf("Input b complet!\n");
if(b='b')
printf("b=\n",b);
}

printf("END\n");
getch();
}

//程序在执行的时候,无法进入Flag1,行。
//关于“怎么回事”,大家能给点提示吗?

//谢谢!!
==抄错了,
问题依旧

你输入a,显示结果是什么?是不是没让你输入b就出来了printf("Input b complet!\n");
其实这是因为,你输入a以后按了回车,回车本身就是回车和换行两个字符,scanf("%c",&b); 实际上接收了回车符,而没让你再次输入b。要想输入b,你可以在程序开始就输入ab,再回车。或者在scanf("%c",&b);前加上fflush(stdin);来清除输入缓冲区,把回车清除掉。

if语句里怎么可以有“=”,肯定错了换“==”先试试看

if(a='a') =改为==
if(b='b') =改为==