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