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() 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... hello,world c語言,求最小值 輸入一個正整數n,再輸入n個整數,輸出最小值。試編寫相應程式。把這些數都裝在一個陣列裡面 比如a for int i 0 ia j printf d a 0 6.程式設計實現 從鍵盤輸入若干個正整數,求其中所有偶數的和並輸出。輸入的數以0作為結束標記。思考 ... 四舍 入 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...1定義陣列,然後輸入正整數n 1n 10 ,再輸入n個整數並存放到該陣列,輸出他們的平均值
用C語言編寫,從鍵盤上輸入若干個正整數,輸入0結束 統計所有正整數的個數,並計算最大值,最小值和平均值
程式設計,輸入10進位制正整數,然後輸出它所對應的八進位制數