free pascal輸入正整數a,b,c,輸出a b的小數形式,精確到小數點後c位。a,b10 6,c

時間 2021-09-11 22:33:38

1樓:

var a,b:real;c:longint;

begin

readln(a,b,c);

if c=0 then begin

writeln(a/b:0:0);exit;

end;

write(trunc(a/b));

a:=a-trunc(a/b)*b;

write('.');

while c>1 do begin

a:=a*10;

write(trunc(a/b));

dec(c);

a:=a-trunc(a/b)*b;

end;

a:=a*10;

writeln(round(a/b));

end.

逐漸執行除法(模擬)。

我說樓上的怎麼這麼不負責任,pascal除法的精度根本沒有100位,直接加:0:c輸出不了20個小數,只有17位,何談100位。真是可悲。

2樓:匿名使用者

program ex;

vara,b:longint;

c:1..100;

begin

readln(a,b,c);

writeln(a/b:0:c);

end.

超簡潔的

選我吧易懂

解釋:writeln(a/b:0:c);

a/b:代表a/b的值

:c保留c位小數

注意::0與:c位置不能掉轉。

(其實:0我還不知道是什麼意思呢)

我發現如果不加:0就會變成科學計數法了...

加了:0才能轉化成正常小數

3樓:匿名使用者

vara,b:longint;

c:shortint;

begin

readln(a,b,c);

writeln(a/b:0:c);

end.水題

4樓:

程式(pascal):

vara,b:longint;

c:integer;

d:real;

begin

read(a,b,c); readln;

d:=a/b;

writeln(d:0:c);

end.

5樓:匿名使用者

你還是看4樓的吧,這題就坑在精度控制!

我學c++的,正好寫了這題

#include

#include

using namespace std;

int main()

;iz=a/b;

iy=a%b;

for(int i=1;i<=c+1;i++)else

}//處理四捨五入

c1=c;

if(store[c1+1]>=5)

else break;} }

//輸出控制

cout<

for(int i=1;i<=c;i++)cout<

cout<<(double)clock()/clocks_per_sec;

system("pause");}

輸入正整數a,b,c輸出a/b的小數形式,精確到小數點後c位(注意最後一位的四捨五入問題) 2 <= a,b,c <= 1000

6樓:聽不清啊

//輸入兩個整數m和n 及另一正整數k 計算m/n結果精確到小數點後k位

#include

int main()

{ int i,m,n,k,t;

scanf("%d",&t);

while(t--)

輸入被除數、除數及小數位數

int a[k+2];

//  printf("%d/%d=",m,n);

a[0]=m/n;                     //商的整數部分

m=m%n*10;                     //模擬手算除法計算餘數

for(i=1; i{ a[i]=m/n;            //計算一位小數

m=m%n*10;                    //準備下一輪計算

a[k]+=a[k+1]>4;               //第k+1位四捨五入

for(i=k; i>0&&a[i]>9; i--)    //處理進位

{ a[i-1]++;

a[i]-=10;

printf("%d.",a[0]);  //輸出商的整數部分

for(i=1; i<=k; i++)

printf("%d",a[i]);

return 0;

輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位

7樓:匿名使用者

#include

....

double x;

x=(double)a/(double)b;

double p=pow(10,c);

x=(int)(x*p)/p;

之後印出x就好了

c語言題目:輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位。例如a=1,b=6,c=4時應輸出0.1667

8樓:匿名使用者

#include

void main()

能力有限,只能幫你做到此了,輸出結果末尾有無效的0,不知怎麼去掉。希望能幫到你

9樓:雷曉

因為如果是int型的話,用a/b得不到小數點,是整除的結果,所以要轉換為float型或者a*1.0/b或者a.0/b;

其實在多數都是這個原理的,方法沒改變的,不會影響的,除非有0的話,就要用if判斷一下的

希望可以幫助到你

10樓:匿名使用者

void div(int a, int b, int n)

}應該可以了。你試下。

11樓:吾生也有涯

void main()

乘以一個小數就可以

12樓:匿名使用者

你沒有考虐溢位哦,親

c語言中輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位,c<100,為什麼c=20時後面幾位是0

13樓:匿名使用者

浮點數也是有有效範圍的,通常說來,一個float只精確到小數點後6位(這個與硬體及編譯器都有關),double精度更高些,但也是有限位的小數部分,所以當你的c不斷增大,就會出現0了。

14樓:匿名使用者

float型提供7為有效數字,double提供16為有效數字,有效數字之後都是不精確的

c語言 輸入正整數a,b,c,輸出a/b的小數形式,保留小數點後c位。a,b<=1000000,c<=100

15樓:匿名使用者

#include

int main()

16樓:朝朝戰士邦

#include

//最大的精度

#define max_length 120//計算商

int getfactor(int a, int b)//計算餘數

int getremainder(int a, int b)//是否整除

bool isaliquot(int a, int b)return ret;

void division(int a, int b, int precision, int ans[max_length])

int i=0;

for(i=0; i max_length)//計算

division(a, b, c, ans);

printf("%d / %d , the answer is:(precision:%d)\n",a, b, c);

printf("%d . ",ans[0]);

int i = 0;

for(i=1; i<=c ; i++)

}printf("\n");

printf("calculation finished!\n");}

17樓:高店村四組

這一題難就難在抄原理上,其襲

實程式並不難,舉個例子吧:

a>b的情況,如4/3,那麼,整數部分直接可以用a/b輸出了,然後輸出小數點。小數部分的話,你想想,是不是可以這麼算,(int)((4/3-(int)4/3)*10)就是×10取整,然後取減去整數部分後的分數,為a*10-(int)(a*10/b)*b。至於怎麼來的,自己好好琢磨吧。

#include "stdio.h"

void fuc(int a,int b,int c)}else}}

void main()

1定義陣列,然後輸入正整數n 1n 10 ,再輸入n個整數並存放到該陣列,輸出他們的平均值

int a 20 int i 0 int ncount 0 cout input ncount cin ncount int a new int ncount 1 int nsum 0 memset a 0 ncount 1 for i 0 i ncount i cout nsum ncount e...

用C語言編寫,從鍵盤上輸入若干個正整數,輸入0結束 統計所有正整數的個數,並計算最大值,最小值和平均值

hello,world c語言,求最小值 輸入一個正整數n,再輸入n個整數,輸出最小值。試編寫相應程式。把這些數都裝在一個陣列裡面 比如a for int i 0 ia j printf d a 0 6.程式設計實現 從鍵盤輸入若干個正整數,求其中所有偶數的和並輸出。輸入的數以0作為結束標記。思考 ...

程式設計,輸入10進位制正整數,然後輸出它所對應的八進位制數

四舍 入 include int main int argc,char argv int num scanf d num printf o num return 0 牛牛vs驢驢 include include int main output 20 int input,temp,n,i 0 cout...