日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中国大学MOOC课程《程序设计入门——C语言》翁恺老师 第六周测试题 高精度小数(习题记录)

發布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中国大学MOOC课程《程序设计入门——C语言》翁恺老师 第六周测试题 高精度小数(习题记录) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1高精度小數(10分)
題目內容:
由于計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。
(0,1)之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果以多個整數來表示,每個整數表示結果的一位。即商的第一位用一個整數來表示,第二位用另一個整數來表示,以此類推,就可以輸出一個高精度的除法結果了。
如16/19的結果0.8421052631…就可以依次輸出8、4、2、1、0、5、2、6、3、1…。
而除法的過程,則可以模仿人工列豎式做除法的方式,先將被除數乘以10,得到一位商以后,將余數乘以10作為下一輪計算的被除數:
160/19->8余8
80/19->4余4
當某次余數為0時,則表明除盡。
現在,請寫一個程序,輸入一個分數,計算出它的小數形式。無論是否可以除盡,輸出最多小數點后200位。
輸入格式:
形如
a/b
的兩個數,其中10<=a<b<100。也就是說,這個小數一定是小于1的正數。
提示:輸入是帶著兩個數中間的“/”的,所以scanf應采用“%d/%d”這樣的輸入格式。
輸出格式:
形如

0.xxxxxxxxx

的小數,小數點后最多200位。輸出結束的時候要帶著回車換行。如果a/b是一個有限不循環小數,則輸出完所有的有效位就可以了,不需要再輸出后面的0來湊滿200位。
輸入樣例:
16/19
輸出樣例:
0.84210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684
``時間限制:500ms內存限制:32000kb

#include <stdio.h>int main() {int a, b, num;//定義輸入的兩個數,輸出的位數int count = 0;//定義計數器scanf("%d/%d", &a, &b);if ( a>0 && a<b )//需要保證輸出的數是大于零而且小于1,需要進行判斷,滿足條件繼續執行{printf("0.");while ( count<200 )//定義循環,輸出前200位{num = (a*10)/b;//取得商printf("%d", num);//輸出所要的商count ++;a = (a*10)%b;//將被除數a置換為余數if ( a==0 )//如果a不為零(即余數不為零),繼續執行,如果為零,說明這個數是有限不循環小數,不需要繼續執行{break;}}printf("\n");}return 0; }

妙不可言

總結

以上是生活随笔為你收集整理的中国大学MOOC课程《程序设计入门——C语言》翁恺老师 第六周测试题 高精度小数(习题记录)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。