c语言-C怎样检测一个浮点数是否为另一个浮点数的倍数

问题描述

C怎样检测一个浮点数是否为另一个浮点数的倍数

判断一个浮点数数是否为0.5的倍数
#include
#include
int main(){
double a=0;
printf("请输入一个0.5的倍数:n");
scanf("%f",&a);
a=a/0.5;
if(a==(int)a){
printf("您所输入的是0.5的倍数。n");
exit(1);
}
printf("您所输入的不是0.5的倍数。n");
}

无法检测,输入3.5,输出也是“您输入的不是0.5的倍数。”

解决方案

int main(){
double a=0;
printf("请输入一个0.5的倍数:n");
printf("%fn",1e-6);
scanf("%lf",&a);//double类型的对应 %lf 输错了会错
printf("%lfn",a);
int b = (int)(a/0.5);
printf("%dn",b);
if(a-b*0.5<=1e-6&&a-b*0.5>=-1e-6)// 浮点型一般是有误差的,0.000001的误差内可以说是相等的。
{
printf("您所输入的是0.5的倍数。n");
}
else
{
printf("您所输入的不是0.5的倍数。n");
}
}

时间: 2024-09-15 21:23:27

c语言-C怎样检测一个浮点数是否为另一个浮点数的倍数的相关文章

c语言-请问各位大师,C语言中如何实现数学中的:输入一个自然对数e,得到的结果是1???

问题描述 请问各位大师,C语言中如何实现数学中的:输入一个自然对数e,得到的结果是1??? [ 问题出在哪?是double x;吗???(如何解决?) 解决方案 sacanf不能识别expf(1),你输入它等于输入0 你需要输入2.71828 #include <stdio.h> #include <math.h> int main() { double i; scanf_s("%lf", &i); double x = logf(i); printf(

c语言-C语言将两个递增有序单链表归并为一个降序的单链表,求大侠帮忙看看

问题描述 C语言将两个递增有序单链表归并为一个降序的单链表,求大侠帮忙看看 #include #include #define N 8 typedef struct list { char c; struct list *next; } SLIST; SLIST *creat(char *a) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i { q=(SLIST *)malloc(sizeof(SLI

c语言-C语言中临界矩阵转换为双向链域表示一个带权的无向图,设计一种算法的表示

问题描述 C语言中临界矩阵转换为双向链域表示一个带权的无向图,设计一种算法的表示 C语言中临界矩阵转换为双向链域表示一个带权的无向图,设计一种算法的表示 解决方案 相当于图的遍历,首先根据邻接矩阵构造节点,然后依次把边添加到图中.

c语言-数据结构C语言字符串的输出时总是少输出最后一个字符,这是怎么回事啊?

问题描述 数据结构C语言字符串的输出时总是少输出最后一个字符,这是怎么回事啊? 代码如下: #include #include struct SeqString { int MAXNUM;//字符串的最大个数 int n;//字符串的长度 char c;//存储基地址 }; typedef struct SeqString *PSeqString; PSeqString CreatNullStr(int m); void InitStr(PSeqString pstr); /***主函数****

用C语言判断一个二叉树是否为另一个的子结构_C 语言

1.问题描述:      如何判断一个二叉树是否是另一个的子结构?      比如:         2       /   \      9    8     / \    /    2  3  5   / 6    有个子结构是    9   / \ 2  3 2.分析问题:    有关二叉树的算法问题,一般都可以通过递归来解决.那么写成一个正确的递归程序,首先一定要分析正确递归结束的条件. 拿这道题来讲,什么时候递归结束. <1>第二个二叉树root2为空时,说明root2是第一棵二叉树

c++ c语言数据结构-怎么样在C++上用new建立一个数组

问题描述 怎么样在C++上用new建立一个数组 应该叫建立动态存储区吧,主要想请教一下关于结构体的,输入一个数字怎么样建立一个长度为这个数的数组 解决方案 很简单 int n; cin >> n; int * arr = new int[n]; 如果是结构体: int n; cin >> n; S * arr = new S[n]; for (int i = 0; i < arr; i++) arr[i] = new S(); 解决方案二: new一个指针数组哪位大哥知道怎么

jsp 网站开发-JAVA WEB应用,一个操作只能同时有一个用户操作

问题描述 JAVA WEB应用,一个操作只能同时有一个用户操作 一个B/S系统,其中有个调用Linux脚本的操作,执行时间较长,要求系统只能同时有一个用户执行此操作,否则提示其他用户正在执行,请问下该如何实现呢? 解决方案 在該腳本開頭添加"ps -ef | grep 'yourshell'",返回監測結果,看是繼續執行,或是退出交回到java 解决方案二: 这个可以当启动linux脚本时写一个标识位到一个文件内.当其它用户再启动linux脚本时检测这个文件.是否存在即可. 解决方案三

java-如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书?

问题描述 如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书? 在做一个接口,如何保证我只在项目中配置一个 私钥, 就可以使每一个访问我接口的用户提示下载证书??? 现在就是用 jdk生成的证书,但是必须客户端和服务端的密钥都有,我就是想怎么做才能在用户访问的时候才提示下载证书?? 解决方案 服务器端做一个检测,或者提供一个下载的页面 解决方案二: 服务器通讯端口做检查,如果不是标准密钥接入,或者没有密钥:跳转到密钥下载地址.

url-怎么在输入一个URL时弹出一个登陆对话框

问题描述 怎么在输入一个URL时弹出一个登陆对话框 在服务器那边怎么做,用什么语言,怎么做才能实现这样的功能啊,求大神指教 解决方案 你说的网页中弹出对话框,这个一般是js去实现的.比如这个http://www.cnblogs.com/cmsdn/archive/2012/06/07/2538596.html 解决方案二: JavaScript有类似功能 解决方案三: 找artdialog这个弹出层插件 解决方案四: js就可以实现了. Js开发:http://www.leixuesong.cn