C语言初级问题
- 提问者网友:人生佛魔见
- 2021-04-20 23:30
main()
{
float n,m,M,L;
int k;
scanf("%f",&m);
M=(int)m;
k=(m-M)*10;
if(m>M)
{
if(k==1)
printf("A");
else
if(k==2)
printf("B");else
if(k==3)
printf("C");else
if(k==4)
printf("D");else
if(k==5)
printf("E");else
if(k==6)
printf("F");else
if(k==7)
printf("G");
}
getchar();getchar();
}
这里的意思是:输入一个带小数的M,看他小数是什么而给出相应的字母
例如输入1.1 输出A
1.2 输出B
但是为什么到1.3的时候还是会输出B?
- 五星知识达人网友:梦中风几里
- 2021-04-21 00:06
int转换成float时要注意用精度损失,而且float型,判断相等不能简单的用==号
#include<stdio.h>
main()
{
float n,m,M,L;
float k;
scanf("%f",&m);
M=(int)m;
k=(m-M)*10;
if(m>M)
{
if((k-1)>-0.000001&&(k-1)<0.000001)
printf("A");
else
if((k-2)>-0.000001&&(k-2)<0.000001)
printf("B");else
if((k-3)>-0.000001&&(k-3)<0.000001)
printf("C");else
if((k-4)>-0.000001&&(k-4)<0.000001)
printf("D");else
if((k-5)>-0.000001&&(k-5)<0.000001)
printf("E");else
if((k-6)>-0.000001&&(k-6)<0.000001)
printf("F");else
if((k-7)>-0.000001&&(k-7)<0.000001)
printf("G");
}
getchar();getchar();
return 0;
}
- 1楼网友:西风乍起
- 2021-04-21 02:45
#include<stdio.h> main() { double n,m,mi,L; char c; int k; printf("请输入m"); scanf("%lf",&m); mi=(int)m; k=(m-mi)*10; if(m>mi) { if(k==1) printf("A"); else if(k==2) printf("B"); else if(k==3) printf("C"); else if(k==4) printf("D"); else if(k==5) printf("E"); else if(k==6) printf("F"); else if(k==7) printf("G"); } getchar();
}
- 2楼网友:过活
- 2021-04-21 01:59
- 3楼网友:过活
- 2021-04-21 01:05
这要出现问题是if语句的嵌套,要带括号:
修改后是:
#include<stdio.h> main() { float n,m,M,L; int k; scanf("%f",&m); M=(int)m; k=(m-M)*10; if(m>M) {
if(k==1) printf("A"); else
{ if(k==2) printf("B");
else
{ if(k==3) printf("C");
else { if(k==4) printf("D");
else
{ if(k==5) printf("E");
else
{ if(k==6) printf("F");
else
{ if(k==7) printf("G");
}
}
}
}
} getchar();getchar(); }