VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 552|回复: 1

[原创] 说一下c语言中做除法的一点小感悟

[复制链接]
61_avatar_middle
在线会员 2017666 发表于 2017-8-19 11:56:38 | 显示全部楼层 |阅读模式
float 为 浮点型函数

看完教程 琢磨写一个简单计算器

加减乘都好做

唯一除法研究了几个小时

                printf("÷号回车代替 直接输入需要乘与被乘数即可\n请输入..");
                scanf_s("%d%d", &q, &w);
                printf("%d ÷ %d =%lf \n",q, w, (float)q / w);


代码 q,w 为 申明的两个int型变量,  括号中第一个%d为q的输入储存值  第二个%d为w的输入储存值

后面的q/w  为做乘法   一直再解决的问题就是,1除以2 怎么能显示0.5,代码中 (float)q / w); 这一句就是关键 float


float放到q/w前面意思为 整数型强制转换成浮点型

说一下c语言中做除法的一点小感悟





说说犯过的错误

刚开始的思路是先申明一个float型的变量 然后用int型变量 两者运算 结果大家可想而知

又想着既然除法 那么都用float 申明变量  可惜还是不好使 编译后直接输出0.00..x.0.00...=0.00...

然后想着 在每个变量前 把int型强制转换成整数型 语法也就是 ,(float)(q),(float) (w), (float)(q) /(float) (w));


没办法 哈哈 能力有限           就不一一列举犯过的二逼型错误


解决办法 就是在 运算q/w前面(float)q/w 完美解决问题 各种除法


  1. #include <stdio.h>

  2. int main(int argc, char const*argv[])

  3. {
  4.         int a, q = 0, w = 0;
  5.         printf("计算乘法请输入:1\n\n计算除法请输入:2 \n\n计算加法请输入:3\n\n计算减法请输入:4\n\n");
  6.         scanf_s("%d", &a);
  7.         if (a == 1)
  8.         {
  9.                 printf("x号回车代替 直接输入需要乘与被乘数即可\n请输入..");
  10.                 scanf_s("%d%d", &q, &w);
  11.                 printf("%d x %d = %d\n", q, w, q*w);
  12.         }
  13.         else if (a == 2)
  14.         {
  15.                 printf("÷号回车代替 直接输入需要乘与被乘数即可\n请输入..");
  16.                 scanf_s("%d%d", &q, &w);
  17.                 printf("%d ÷ %d =%lf \n",q, w, (float)q / w);
  18.          
  19.          
  20.         }
  21.         else if( a == 3)
  22.         {
  23.                 printf("+ 号回车代替 直接输入需要乘与被乘数即可\n请输入..");
  24.                 scanf_s("%d%d", &q, &w);
  25.                 printf("%d + %d = %d\n", q, w, q+w);
  26.         }
  27.         else if ( a == 4 )
  28.         {
  29.                 printf("- 号回车代替 直接输入需要乘与被乘数即可\n请输入..");
  30.                 scanf_s("%d%d", &q, &w);
  31.                 printf("%d - %d = %d\n", q, w, q-w);
  32.         }
  33.         return 0;
  34. }
复制代码


此处代码我觉得用switch   case 语句实现我觉得比这个要完美
个人是为了练习各种语句所以用 if 来写的

因为还是新手在自学阶段,当然对于大牛可能还有更多的方法实现 欢迎各位留言探讨







上一篇:关于数组一些理解
下一篇:用字符指针与字符串

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

01_avatar_middle
online_admins admin 发表于 2017-8-20 08:31:49 | 显示全部楼层
如果其他各位新手在学习的过程中也能像楼主这样细致的分析理解肯定都没问题了!加油

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-17 05:49

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表