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); 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... 輸入一個整數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 ... 問明 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...free pascal輸入正整數a,b,c,輸出a b的小數形式,精確到小數點後c位。a,b10 6,c
C語言輸入正整數n,輸出1 n,每行一個
C 語言輸入正整數,判斷它是否是迴文數