C语言—判断整数的奇偶


前言

提示:涉及到【判断】,自然而然要考虑【分支结构】(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("输入的整数为“偶数”。");	
}

版权声明:本文为Unlimit_Sword原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。