想问一下,if语句中为什么写上*1.0之后,输出的就是对的个数29,但把*1.0删掉后,输出的个数就远大于29了?

还想讨教一下各位高手,除了这种暴力求法,还有其他的比较好的方法吗?非常感谢

/*

凑算式

B      DEF

A + -- + -- = 10

C      GHI

(假如显示有问题,可以参见【图1.jpg】)

这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

例如:

6+8/3+952/714 就是一种解法,

5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?*/

#include

int main(){

int b,c,d,e,f,g,h,i,j;

int k = 0;

for(b=1; b<=9; b++){

for(c=1; c<=9; c++){

if(b==c){

continue;

}

for(d=1; d<=9; d++){

if(d==c || d==b){

continue;

}

for(e=1; e<=9; e++){

if(e==b || e==c || e==d){

continue;

}

for(f=1; f<=9; f++){

if(f==b || f==c || f==d || f==e){

continue;

}

for(g=1; g<=9; g++){

if(g==b || g==c || g==d || g==e || g==f){

continue;

}

for(h=1; h<=9; h++){

if(h==b || h==c || h==d || h==e || h==f || h==g){

continue;

}

for(i=1; i<=9; i++){

if(i==b || i==c || i==d || i==e || i==f || i==g || i==h){

continue;

}

for(j=1; j<=9; j++){

if(j==b || j==c || j==d || j==e || j==f || j==g || j==h || j==i){

continue;

}

if(fabs(b*1.0 + c*1.0 / d + (e * 100 + f * 10 + g)*1.0 / (h * 100 + i * 10 + j) - 10.00)

k++;

printf("%d %d %d %d %d %d %d %d %d\n",b,c,d,e,f,g,h,i,j);

}

}

}

}

}

}

}

}

}

}

printf("%d",k);

return 0;

}

解决方案

40

乘以1.0的作用是将其转换为double形,你删掉1.0对每个数使用强制类型转换也可以。5*1.0你可以写成(double)5。原因,1/2按整形计算结果为0,4/3按整形结果为1,所以这样和你算得会不一致,1*1.0/2原因是1.0的存在,该算式中的其他数字被强制类型转换为double,最后结果为0.5。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言 凑算式 控制精度问题!

C语言精度控制整形,C语言 凑算式 控制精度问题相关推荐

  1. c语言循环次数控制,3 C语言 流程控制 循环 跳转

    3 C语言 流程控制 循环 跳转 选择: if switch 循环   while,do while ,for ,嵌套 跳转 break goto continue 第3章流程控制 学习目标 u掌握选 ...

  2. 易语言 ftp控制html,易语言做的FTP验证系统。功能基本实现。

    本帖最后由 164984654 于 2014-1-27 09:33 编辑 235736t7qruh000q0k5y5y[1].jpg (36.72 KB, 下载次数: 14) 2014-1-26 16 ...

  3. c语言抓取机器硬件阐述,c语言如何控制硬件

    c语言如何控制硬件 你们知道在C语言中如何控制计算机的硬件吗?下面是应届毕业生小编带来的关于c语言如何控制硬件的内容,欢迎阅读! c语言如何控制硬件? C语言是没办法控制硬件的 首先,C语言不能够直接 ...

  4. c语言控制硬件指令,c语言如何控制硬件

    你们知道在C语言中如何控制计算机的硬件吗?下面是学习啦小编带来的关于c语言如何控制硬件的内容,欢迎阅读! c语言如何控制硬件? C语言是没办法控制硬件的 首先,C语言不能够直接对硬件进行操作.从本质上 ...

  5. python微控制器编程从零开始-单片机可以使用Python语言来控制了!

    告诉广大Python爱好者一个好消息,单片机可以使用Python语言来控制了. Arudino虽然在开源硬件领域非常流行,但是对于不懂C/C++编程语言的玩家来说,还是需要一段学习时间. Damien ...

  6. C语言中控制printf的打印颜色实例及vt100的控制符

    C语言中控制printf的打印颜色实例及vt100的控制符文档 收藏 转自:http://blog.csdn.net/evimacsl/archive/2010/01/18/5206836.aspx ...

  7. PAT甲级1061 Dating:[C++题解]字符串处理(C语言格式控制牛逼!)

    文章目录 题目分析 题目链接 题目分析 题意重述:四个字符串,前两个字符串是一组:求 日期和小时: 后两个字符串是一组:求分钟. 对于前两个字符串: 需要统计两次,位置相同并且是相同的字符. 第一个符 ...

  8. R语言入门4---R语言流程控制

    ​ 流程控制语句在任何语言中都是非常重要的,通过流程控制语句编程者能够根据业务逻辑在程序中设计合理的循环.分支,实现程序各种各样强大的功能.一般实现任一算法的控制结构都可以分为顺序结构.分支结构.循环 ...

  9. c语言自动按键脚本,C语言键盘控制走迷宫小游戏

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...

最新文章

  1. linux nand 坏块_linux内核中对nand的坏块管理
  2. SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析
  3. 代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...
  4. web.xml.jsf_JSF 2.2在30秒内创建一个自定义Hello World组件
  5. 创建索引的方法有两种
  6. 洛谷 P1330 封锁阳光大学题解
  7. exchange 20132016配置使用IMAPPOP
  8. 【二分】【中等难度】noip模拟赛 聪哥的工资
  9. Python3.2官方文件翻译-工具列表和十进制浮点计算
  10. SCVMM 2012 R2运维管理十一之:添加Hyper-v群集
  11. Impala的操作命令之 内外shell
  12. Git fatal: write error: Broken pipe
  13. 小米2s Android pie,Android 9 Pie什么时候升级?小米MIX 2S抢先体验!
  14. 机器学习_周志华_西瓜书_学习笔记_第16章--强化学习
  15. Oracle Goldengate Director软件截面图
  16. 计算机ppt咋弄,ppt打不开怎么办?教您详细解决方法
  17. arduino继电器控制风扇_如何基于Arduino制作DHT22控制的风扇
  18. Xi说孔方兄之名字由来
  19. HTML+CSS学习——奥运五环代码
  20. druid以及监控台使用及配置

热门文章

  1. 不服OceanBase跑分?今天起可到阿里云上一战
  2. 分布式事务方案这么多,到底应该如何选型?
  3. Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...
  4. vue解构赋值_前端开发es6知识 模块化、解构赋值、字符串模板
  5. java 队列_百战程序员:Java并发阻塞队列
  6. php mysql 失败_在php中插入失败的数据mysql
  7. linux 15秒 搭建VSFTPD文件服务器
  8. 3行代码实现ftp 上传、下载、删除操作集合
  9. 7 行代码优雅地实现 Excel 文件导出功能?
  10. gblfy_IDEA常用快捷键技巧