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);
c語言怎麼寫輸入資料有多組,每組輸入正整數N
你可以先做一個預處理。例如說有一個a陣列,a n 為1表示n是2的冪,否則不是 那麼你在初始化的時候a陣列整個就是全為0的 然後int p 1 for int i 0 i 31 i 這裡根據你要的資料量大小決定,這裡是有符號的 ok,預處理只做了32次賦值和32次位移而已。接下來對於任意輸入的n,你...
C語言程式設計題,輸入N正整數(1020)存入陣列a中,輸出a中的最大值
include void main if m 0 printf not fount n 我心如一 include stdio.h define n 8 void main int i,a n x,flag 0 for i 0 i陣列 時n不能是變數,如果不確定陣列大小,想改變n值,就把它用 defi...
若c是正整數,a b d e f是整數,且滿足a b c,b c d,d c e e f a則a b c d e f最小值為
俺試試,打醬油而已 a b c b c d a 2b d d c e 2a 3b e e f a 2a 3b f a a 3b f 0 a 3b f 由上得到 a b c d e f a b a b a 2b 2a 3b a 3b 4a 4b 4 a b 4c c是正整數,故c最小為1 故4c最小值...