c語言題目 輸入正整數a,b,c,輸出a b的小數形式,精確

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

1樓:匿名使用者

你沒有必要那樣做的,直接這樣就可以了。如。

c=8;

double pp=a/b;

if ( (pp*1000000000%10) > 4)//判斷小數點後第9位是否大於4,大於4就要進位

pp+=0.00000001;

printf("結果是%0.8f",pp); //輸出結果,自動只輸出到小數點後8位。

2樓:匿名使用者

#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");}

3樓:匿名使用者

不用這麼麻煩的,a/b前轉換成double型

#include

int main()

4樓:

#include

void main()

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

5樓:聽不清啊

//輸入兩個整數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;

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

6樓:匿名使用者

#include

void main()

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

7樓:雷曉

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

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

希望可以幫助到你

8樓:匿名使用者

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

}應該可以了。你試下。

9樓:吾生也有涯

void main()

乘以一個小數就可以

10樓:匿名使用者

你沒有考虐溢位哦,親

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

11樓:匿名使用者

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

12樓:匿名使用者

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

c語言,輸入正整數a,b,c輸出a/b的小數形式,保留小數點後c位,例1 ,6 ,4得0.1667

13樓:匿名使用者

難道是輸入資料中的分隔符(逗號)惹的禍?

**沒有問題啊

14樓:匿名使用者

題目要求的是隻輸入一組資料還是要輸入多組?

如果是要輸入多組的話要用到

free pascal輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位。a,b<=10^6,c<=100

15樓:

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位。真是可悲。

16樓:匿名使用者

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才能轉化成正常小數

17樓:匿名使用者

vara,b:longint;

c:shortint;

begin

readln(a,b,c);

writeln(a/b:0:c);

end.水題

18樓:

程式(pascal):

vara,b:longint;

c:integer;

d:real;

begin

read(a,b,c); readln;

d:=a/b;

writeln(d:0:c);

end.

19樓:匿名使用者

你還是看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位

20樓:匿名使用者

#include

....

double x;

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

double p=pow(10,c);

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

之後印出x就好了

輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位。c/c++程式設計實現

21樓:匿名使用者

用c++實現的,完全符合要求,可以手動輸入a,b,c的值。

————————————————

#include

#include

using namespace std;

int main()

————————————————

22樓:匿名使用者

#include

int main(void)

return 0;

}沒細想,拋磚引玉吧。

23樓:黑魔星炫

printf("%.cf",a/b);

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

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 w...

C語言輸入正整數n,輸出1 n,每行一個

輸入一個整數n?還是一串整數?輸入一個正整數n,再輸入n個整數,輸出最小值 c語言 include int main int i,n,t,min scanf d n 輸入。個數scanf d t 輸入第一個數min t 令最小值等於第一個數。for i 1 i下n 1個數。scanf d t if ...

C 語言輸入正整數,判斷它是否是迴文數

問明 include stdio h include stdlib h int main int num,k,n 0 printf 請輸入一個數 scanf d num k num while k 0 n n 10 k 10 k k 10 if n num printf d是迴文數 n else p...