新手求助!关于getchar()!='\n'与scanf的冲突。另外,关于%fl和%f的区别
新手求助!关于getchar()!='\n'与scanf的冲突。另外,关于%fl和%f的区别以下代码将//去掉则可以正确执行,加上//则会导致login()函数的scanf语句跳过执行。求解答。
程序代码:#include<stdio.h>
void login();
void menu();
void add();
int main()
{
char m;
login();
menu();
//while(getchar()!='\n');
printf("请输入选择:\n");
m=getchar();
switch(m)
{
case 'A':printf("a\n");break;
case 'B':printf("b\n");break;
case 'C':printf("c\n");break;
}
return 0;
}
void menu()
{
printf("*********\n");
printf("* A *\n");
printf("* B *\n");
printf("* C *\n");
printf("*********\n");
}
void login()
{
int mm;
printf("请输入登录口令:\n");
scanf("%d",&mm);
}下面这段代码中,在//这一行中将%fl换成%f ,则无法得出正确结果,求教。
程序代码:#include<stdio.h>
#include<math.h>
int san(double a,double b,double c);
int main()
{
double x,y,z;
int f;
printf("请输入三角形的三边,以空格隔开:\n");
//scanf("%lf %lf %lf",&x,&y,&z);
f=san(x,y,z);
if(f==1)
printf("这是三角形!\n");
else
printf("这不是三角形!\n");
return 0;
}
int san(double a,double b,double c)
{
int m;
if(a+b>c && b+c>a && c+a>b)
m=1;
else
m=0;
return m;
}








