/*---------------------- 第二题
写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子,D为分母,输出它的小数形式。
如果它的小数形式存在循环,则要将其用括号括起来。例如: 1/3= 0.(3)
41/333= 0.(123) 22/5=4.4
1/7=0.(142857) 3/8=0.375
45/46=0.9(7826086956521739130434)
本题中,0≤N≤65535,0≤D≤65535,设运算结果小数点后最多保留100位。
输入样例: 1, 7
输出样例: 1/7=0.(142857)
-----------------------*/
#include
void main(){ long int digit[101]; //存放结果的数组,0号元素放整数部分,其余放小数部分 long int remainder[101]; //存放余数 int state=0; //是否是循环小数,默认不是 long int repetendstart=0; //循环节的开始位置和结束位置 long int n,d; //输入的分子和分母 int i; printf(\ scanf(\//输入分子和分母 digit[0]=n/d; remainder[0]=n%d; //求出第一个余数 i=0; while(remainder[i] && !state && i<100){ //求小数部分 i++; //i记录了求了多少位小数 digit[i]=remainder[i-1]*10/d; //求出一位小数 remainder[i]=remainder[