c语言 查找循环节起点,用C语言怎么求循环小数的循环节?
满意答案
zybehqej
推荐于 2016.09.09
采纳率:43% 等级:8
已帮助:512人
1、判断循环的关键是在确定每位小数的时候,判断余数是否出现与之前的相同。
2、例程:int repetend( //求循环节的函数,返回值为循环长度,共3个参数
int a, //第一个参数为被除数
int b, //第二个参数为除数
char *Str) //第三个参数为用于存循环节每一位的数组指针
{int Rem[255], //用于存余数的整型数组
Div1=a, //把被除数保存下来,因为后面可能会改变被除数的值
Div2=b; //把除数也保存下来,因为后面可能会改变除数的值
if(a==0 or b==0) return 0; //如果被除数或者除数为0,函数返回0值
if(Div1<0) Div1=Div1*-1; //正负并不影响求循环节,所以被除数和除数都取绝对值
if(Div2<0) Div2=Div2*-1; //正负并不影响求循环节,所以被除数和除数都取绝对值
for(;Div1*10
/*如果被除数乘以10小于除数,就通过一个循环不断让被除数乘以10,直到被除数乘以10大于
或者等于被除数,这样可以清除掉小数点后面的0.000000这些多余的数据。*/
Rem[0]=Div1%Div2; //第一次保存余数
for(int i=0;;i++) //用一个死循环检索小数点后面的每一位
{Div1=Rem[i]*10; //每一次的被除数都为前一次余数乘以10
Str[i]=Div1/Div2; //得到第i位小数(0为第1位,1为第2位,以此类推)
Rem[i+1]=Div1%Div2; //保存余数
if(Rem[i+1]==0) //不管小数点后第几位,如果余数为0,说明能除尽,不会出现循环
{Str[0]=0; //循环节为0
return 1;} //函数返回1,这是根据你题目中要求的,但我觉得应该设为0比较合理
for(int j=0;j<=i;j++) //再用一重循环比较之前所有的余数,确定循环节起始点
if(Rem[i+1]==Rem[j])
/*判断是否出现循环的关键是判断余数是否和之前的某一次相同。如果当前余数等于之前的某一
次余数,说明开始出现循环。循环点的起点为j,终点为i,循环长度为(i-j)+1位小数,当上述判断为真时,就可以结束函数*/
{for(int k=0;k<=(i-j);k++) Str[k]=Str[j+k]; //整理循环节数组
return (i-j)+1;} //函数返回循环长度
}
}
00分享举报
c语言 查找循环节起点,用C语言怎么求循环小数的循环节?相关推荐
- c语言for循环说课稿,C语言FOR循环说课稿.docx
C语言FOR循环说课稿 各位评委老师上午好,我今天说课的内容是"FOR循环"(板书),下面我将从教材的地位及作用.学生学情.教学目标.教学重难点.教法.学法.教学过程.教学效果的预 ...
- C语言for循环的嵌套例题,c语言 for循环的嵌套(含答案)
c语言 for循环的嵌套(含答案) 第 33.34 课时 for 循环的嵌套实验题一:1.下面程序的功能是计算:至 50 中是 7 的倍数的数值之和,请选择填空.D#include main() in ...
- c语言for循环嵌套经典例题,C语言 for循环的嵌套题(含解析和答案).doc
C语言 for循环的嵌套题(含解析和答案) 第33.34课时 for循环的嵌套 实验题一: 1.下面有关for循环的正确描述是: D A) for循环只能用于循环次数已经确定的情况 B) for循环是 ...
- c语言程序设计循环结构实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc...
C语言程序设计实验报告选择与循环结构程序设计 学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C++与程序设计 专业班级: 通信121 姓 名: 学 号: 学生实验报告(2) 学生姓 ...
- c语言中循环结构的作用,C语言循环结构知识点
C语言循环结构知识点 引导语:循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构.以下是百分网小编分享给大家的C语言循环结构知识点,欢迎 ...
- c语言构成循环结构的是,C语言循环结构选择题
计算机二级的资料 C语言循环结构选择题 1.在C语言中,下列说明正确的是 A) 不能使用 do-while构成的循环 B) do-while构成的循环必须用break才能退出 C) do-while构 ...
- c语言中循环并列语句顺序,C语言第五讲,语句 顺序循环选择.
C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...
- c语言程序设计循环结构实验报告,C语言程序设计实验报告:循环结构程序设计...
循环结构程序设计 C语言实验报告 课程__C程序设计_实验名称_循环结构程序设计__第 页 共 页 系 别__电气工程______________________ 实 验 日 期 2010 年 4 月 ...
- C语言用循环结构算平均值,C语言循环结构选择题().doc
1.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for (j=0;j<4;j++){...} A) 20 B) 25 C) 24 D) 3 ...
最新文章
- 【ssh从零单排】关于HTTP Status 404的debug问题
- [Abp vNext 源码分析] - 19. 多租户
- jupyter配置到服务器_服务器端jupyter notebook映射到本地浏览器的操作
- 李沐:工作五年反思!
- 移动端开发meta标签 viewport 设置
- C语言课后习题(33)
- 从运维角度浅谈MySQL数据库优化,中小企业DBA必会
- 【CVPR 2021】VarifocalNet: An IoU-aware Dense Object Detector的译读笔记
- c语言自己建个题库随机出题,自己建个题库随机出题 让学习效率大大提高
- html表格冻结原理,html表格table冻结行和列
- 使用clusterProfiler进行KEGG富集分析
- 蚂蚁金服刘伟光:我们为什么要科技开放
- NLP 论文领读 | 缺少有标注的数据集怎么训练文本检索模型?来看看 LaPraDoR怎么做的吧
- ora2pg 导出Oracle数据
- 腾讯云TCA运维考试题
- c语言字符三维数组定义时赋值,c语言中三维数组的赋值顺序?
- spotify歌曲下载_k表示使用Spotify歌曲功能进行聚类
- RroductFlavors 多渠道打包 配置不同的包名、桌面图标、引导页、java代码等
- 内核proc参数注释(kernel、vm、net、fs四类)
- matlab中cos(pi/2)和sin(pi)不等于0的解决方案
热门文章
- OFDM子载波频率 知乎_无线数字通信中数据速率、载波频率和带宽的关系
- 视频解码之软解与硬解
- java抽象类普通方法_Java程序员开发三年,去网易社招,竟被问到这些面试题
- 《学活Linux》第二讲——内核模块和驱动模型
- java统计每个单词单词出现的次数_统计一篇英文中每个单词出现的次数
- PAT乙级 1019 数字黑洞
- linux下载TCGA数据,如何下载TCGA数据/TCGA数据下载小教程
- 瓷片电容容量 102 103 104 222 223 472 473 474 是多少
- 任务四 机器学习库Scikit-learn
- js中的reduce的用法