c语言知识程序两数相除精确到小数点后k位.doc

-题目 输入两个整数m和n,及另一正整数k,计算m/n,结果精确到小数点后k位1、问题分析与方案设计。1.首先解决输入问题。题目要求输入三个整数m,n,k。所以定义()函数,使输入的为正整数,如果是字母或者其他字符则会报错提示重新输入。具体方法先采用字符串输入,限定每一个输入的字符都在09之间,保证输入的是数字,避免输入的是字母或者其他字符,然后再对字符串使用atoi函数,该函数为c语言自带的函数,其功能为把字符串转换成整型数。2.关于m/n的计算问题。计算结果要求精确到k位,由于m与n是整形,所以m/n结果也是整形,而无法得到小数点后面的位数。所以这里有两种解决方案讲m、n定义为double型 将结果的整数部分与小数部分分别显示。由于第一种方案的局限性(无法精确到用户指定的k位),所以本程序采用第二种方案,3输出问题。首先在界面上把所输入的m n k全部显示出来以便用户查看,再输出运算结果。结果的输出考虑最后一位四舍五入的情况。4菜单与人性化设计。首先显示菜单,包括欢迎语,本程序的功能介绍以及用户的输入要求,让人一目了然。当处理完一个操作之后,提示用户是否继续,输入y继续,则再次输入m n k;若输入n则退出程序。5.另外考虑到除数不能为0,所以限定输入的n不能为0,若为0则报错重输。开始输入正整数m输入正整数n输入正整数kik定义循环控制符i0输出m/n和小数点mmnm*10输出m/ni第k位四舍五入输出第k位是否继续结束ynyn流程图2、编程实现。1、输入函数()。int 1int m;int flag,i;//设定标识符flag,如果输入的不是09的数字则flag1,进入报错重输循环 char t100; //先采用字符串输入 限定输入的每一位都在09之间,保证输入的是数字、避免输入的是字母或者其他字符doflag0; fstdin;re getst;fori0;size_tistrlent;iifti0 ||ti9flag1;ifflagprintf输入有误,请重新输入mn;flag0; //这一步要重置flag为0,当做无误的再作判断goto re;whileflag;matoit;// atoi功能把字符串转换成整型数 return m;并且在2中用以下语句限定n不能输入为0.ifm0 printfn不能为0,请重新输入nn; goto re; //考虑到除数不能为02、功能实现 1)、输出整数部分和小数点。关键程序printf运算结果为d.,m/n; //d.将整数部分与小数部分分开处理 2)、输出小数部分。主要通过ik的循环不断输出小数点后的每一位。关键代码fori1;ik;i mmn; m*10; printfd,m/n;//到k-1位3)、四舍五入。若要第k位四舍五入,则需要定义f(k下一位的数值)。通过f与5的比较,用if语句控制进位与否。关键代码mmn;m*10;//最后一位k位四舍五入xm/n; //k位的值mmn;m*10;fm/n; //k下一位的值,用于判断是否大于5 iff5printfdn,x; else printfdn,x1;3、询问是否继续。实现多次执行程序。关键代码printf是否继续y/nn;fstdin;scanfc,whilecyfstdin;scanfc,ifcy goto repeat;else printf再见n;源程序3、测试数据、测试结果、结果分析。测试1测试数据m787422 n89999 k90测试结果结果分析分别输入m n k 如果输入的nadc11则会报错(因为输入的n不为正整数)要求重新输入。当输入完成,则会显示输入的m n k的值并得出运算结果。测试2测试数据m549741164 n5646877 k10测试结果结果分析最后询问是否继续,输入y或者n,若果非y或者n,则提示重新输入,输入y之后则再一次的输入m n k源代码includestdio.hincludestdio.hincludestring.hincludestdlib.h int 1int m;int flag,i;char t100; doflag0; fstdin;re getst;//全部输完n再作判断fori0;size_tistrlent;iifti0 ||ti9flag1;ifflagprintf输入有误,请重新输入mn;flag0; goto re;whileflag;matoit; return m;int 2int m;int flag,i;char t100; //先采用字符串输入 限定输入的每一位都在09之间,保证输入的是数字、避免输入的是字母或者其他字符doflag0; fstdin;re getst;//全部输完n再作判断fori0;size_tistrlent;iifti0 ||ti9flag1;ifflagprintf输入有误,请重新输入nn;flag0; goto re;whileflag;matoit;ifm0 printfn不能为0,请重新输入nn; goto re; //考虑到除数不能为0 return m;int 3int m;int flag,i;char t100; doflag0; fstdin;re getst;fori0;size_tistrlent;iifti0 ||ti9flag1;ifflagprintf输入有误,请重新输入kn;flag0; goto re;whileflag;matoit; return m;int main int m,n,k;int i,x,f;char c;repeat printfttt 欢迎使用n;printfttt 本程序功能如下n;printftt输入3个整数m n k实现m/n结果保留至小数点后k位n;printf请输入mn; m1; printf请输入nn; n2;printf请输入kn;k3;printf您所输入的m n k分别为d d dn,m,n,k;ifk0 printf运算结果为d,m/n; else printf运算结果为d.,m/n; //d.将整数部分与小数部分分开处理 fori1;ik;i mmn; m*10; printfd,m/n;//每次都输出余数值 保留到k-1位 mmn;m*10;//最后一位k位四舍五入 xm/n; //k位的值 mmn;m*10; fm/n; //k下一位的值,用于判断是否大于5 iff5printfdn,x; else printfdn,x1; printfn是否继续y/nn; fstdin; scanfc, whilecy fstdin; scanfc, ifcy goto repeat; else printf再见n; return 0;

c语言两数相除等于小数多少,c语言知识程序两数相除精确到小数点后k位.doc相关推荐

  1. c语言两数相除等于小数多少,c语言程序两数相除精确到小数点后k位

    题目: 输入两个整数m和n,及另一正整数k,计算m/n,结果精确到小数点后k位 1.问题分析与方案设计. 1.首先解决输入问题.题目要求输入三个整数m,n,k.所以定义input()函数,使输入的为正 ...

  2. postgre非零相除等于0_LeetCode刷题实战29:两数相除

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  3. c语言设计一个程序:计算圆周率,精确到小数点后8位数

    可以使用蒙特卡罗(Monte Carlo)方法来计算圆周率.该方法通过随机生成点的方式,来计算圆内的点数与正方形内的点数之比,从而得出圆周率的近似值.以下是一个示例代码: #include <s ...

  4. c语言计算pi后1000位,计算圆周率 Pi (π)值, 精确到小数点后 10000 位

    大家都知道π=3.1415926--无穷多位, 历史上很多人都在计算这个数, 一直认为是一个非常复杂的问题.现在有了电脑, 这个问题就简单了. 电脑可以利用级数计算出很多高精度的值, 有关级数的问题请 ...

  5. double值精确到小数点后两位

    double值精确到小数点后两位 功能 将程序中的double值精确到小数点后两位.可以四舍五入,也可以直接截断. 比如:输入12345.6789,输出可以是12345.68也可以是12345.67. ...

  6. 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...

  7. Java面试题:在一个递增的数组里面,找出任意两个数的和等于100,编写程序输出这些数对,可以假设数组中不存在重复元素

    本文使用两种算法来实现,分别是二分查找法和插值查找法,发现插值查找法更好,更快地找到需要的数据. 代码如下: package com.moson.search;import java.util.Arr ...

  8. 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

    记录自己坑了又坑的每一天: 原题: 给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 div ...

  9. 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

    给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符.返回被除数 dividend 除以除数 divisor 得到的商.示例 1:输入: ...

最新文章

  1. 面试官:海量无序数据,寻找第 K 大的数,越快越好
  2. 【每日一算法】求众数
  3. SAP PM 初级系列8 - PM 组织架构
  4. git clone 代码下载速度慢的解决方法
  5. Class类是什么? Class.forName()是干什么的?
  6. 我的pygraphviz安装之路
  7. 【l转】VS2015下解决:无法解析的外部符号 __imp___vsnprintf 及__iob_func
  8. postgre 生成数据库html文档_还在手动整理数据库文档?试试这个(螺丝钉)数据库文档生成工具...
  9. case when语句中加上and or的处理方式
  10. 简述java对象的封装特点_简述Java面向对象三大特征:封装、继承、多态
  11. java optional_JAVA Optional总结
  12. 在Kubernetes上使用Sateful Set部署RabbitMQ集群
  13. 常用汉字3500——文字识别数据准备
  14. HTML5七夕情人节表白网页制作【自定义文字-烟花告白】HTML+CSS+JavaScript浪漫烟花表白网页制作
  15. 初踩阿里云效代码管理
  16. B站粉丝数监控(Python实现)
  17. Linux下安装VNC远程控制软件
  18. 作数学题应不该用计算机,【中考备考】最新关于初一年级数学题在线解答汇总讲解...
  19. 新浪微博2012校招笔试题
  20. Oracle 19c Grid Infrastructure安装

热门文章

  1. 《计算机工程与应用》审稿周期很长不好中二审被拒
  2. EndNote使用笔记
  3. H3C S7500E V7 系列交换机产品及维护介绍--优化
  4. 无奈的幸福——致所有无法过光棍节的男人
  5. Velocity 介绍
  6. flutter 自定义drawer,并打开
  7. 上市公司高新技术资质认定匹配数据(2000-2021年)
  8. bootstraptable 日期控件_给Bootstrap-table插件添加tree功能
  9. php 威盾加密解密,请问怎么将威盾PHPCodeLock加密的php程序解密?
  10. java逆向反汇编工具_java反编译工具(XJad)v2.2