C语言编写程序,判断输入的实数是奇数、偶数、素数、整数或小数的数字类型?

如题所述

#include <stdio.h>
#include <math.h>
int main()
{
double n;
printf("请输入一个实数:");
scanf("%lf", &n);

// 判断是否为整数
if (n == floor(n)) {
printf("%.0lf是整数\n", n);
} else {
printf("%.2lf是小数\n", n);
}
// 判断是否为偶数
if ((int)n % 2 == 0) {
printf("%.0lf是偶数\n", n);
} else {
printf("%.0lf是奇数\n", n);
}
// 判断是否为素数
int is_prime = 1;
if (n < 2) {
is_prime = 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if ((int)n % i == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
printf("%.0lf是素数\n", n);
} else {
printf("%.0lf不是素数\n", n);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-26
下面是C语言编写程序的示例,可以判断输入的实数是奇数、偶数、素数、整数还是小数:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double num;
int is_int, is_odd, is_prime;
printf("请输入一个实数:");
scanf("%lf", &num);
// 判断是否为整数
is_int = (int)num == num;
// 判断是否为奇数
is_odd = ((int)num % 2 == 1) && is_int;
// 判断是否为素数
is_prime = 1;
if (is_int && num > 1) {
int i;
int limit = sqrt(num);
for (i = 2; i <= limit; i++) {
if ((int)num % i == 0) {
is_prime = 0;
break;
}
}
} else {
is_prime = 0;
}
// 输出结果
if (is_int) {
printf("整数\n");
if (is_odd) {
printf("奇数\n");
} else {
printf("偶数\n");
}
if (is_prime) {
printf("素数\n");
}
} else {
printf("小数\n");
}
return 0;
}
```
注意,由于浮点数在计算机内部表示时可能存在精度问题,因此该程序对于非常大或非常小的实数可能会判断不准确。
相似回答
大家正在搜