前言
提示:涉及到【判断】,自然而然要考虑【分支结构】(if、switch)。
此处要判断两个条件:
1. 是否为整数。 2. 是奇数还是偶数。
一、判断是否为整数
①错误示范
思路:整数与否 —— 小数点之后 有无数值
自己罗列了几个(非)整数值👇
a = 5、6、7
b = 5.9、6.23、7.891
比较、发现规律👇
0 == a * 10 % 10
0 != b * 10 % 10
1 #include <stdio.h>
2 int main(){
3 double a;
4 printf("请输入一个整数:");
5 scanf("%d",&a);
6 if(0 != a*10%10)
7 printf("您输入的不是整数!");
8 else{
9 printf("您输入的是整数!");
10 }
11 }
行6 [Error] invalid operands of types 'double' and 'int' to binary 'operator%' 行6 [报错] 类型“double”和“int”对于二进制“运算符%”是无效的运算对象
原因:%取余数一般用于整型之间,变量a非整型。
②正确示范
使用 floor() 向下取整
6 if(floor(a + 0.5) == a)
第一行要加上 #include <math.h> 参考于https://www.csdn.net/tags/NtDaUgysNTM2ODMtYmxvZwO0O0OO0O0O.html
二、判断是奇数还是偶数
奇数偶数的关键——能否被2整除(余数为0) 代码如下(示例):
#include <stdio.h>
int main(){
int a;
printf("请输入一个整数:");
scanf("%lf",&a);
if(1 == a%2)
printf("输入的整数为“奇数”。");
else
printf("输入的整数为“偶数”。");
}
总结
#include <stdio.h>
#include<math.h>
int main(){
double a;
printf("请输入一个整数:");
scanf("%lf",&a);
while(a != floor(a + 0.5)){
printf("您输入的不是整数!");
printf("请重新输入:");
scanf("%lf",&a);
}
if(1 == (int)a%2)
printf("输入的整数为“奇数”。");
else
printf("输入的整数为“偶数”。");
}
|