//加了下面這行結果會不一樣!好奇怪@@
cout<<"b="<<b<<"\r";
int d=a%b;
if ( d == 0)
{
cout<<b;
}
b=b+10;
}while(b<c);
return 0;
}
> > > 書上說%只能用在整數,但我編譯時,他總是說illegal use of floating point.
> > > 請問我該怎麼修正d=a%b 這個敘述呢! 謝謝!
>
> > > > 程式看來是沒什麼問題
> > > > 不過你知道double的大小嘛??
>
> double是真的蠻大的,(我看書上他的最大值約10的308次方)
> 因為書上是說%只能用在整數,所以我將double
> 換成long(<2147483647) 或int ,結果就沒有出現錯誤了(不知是不是這樣子的關係),
> 若是這樣子的話(資料型態能或不能顯示浮點數),那要怎麼修改呢?
> 謝謝!
> 我將double 換成unsigned long的資料型態,a給2388883341,b=3,他算出了幾個答案
> 133 2313 9383 5059383 32296353 73800393 139947363 184186353
> 我驗算了一下,發現程式計算的是近似值,在do下加了這一行cout<<"b="<<b<<"\r";
算出來的結果不一樣@@
>
> ps.使用double是因為預估會輸入一個相當大的值進去。
> --
> --
--
[1;32m※ Origin: [33m台灣科大電子站 [37m<bbs.et.ntust.edu.tw> [m
[1;31m◆ From: [36m218.163.12.13 [m
==> 在 rd....@bbs.et.ntust.edu.tw (rd) 的文章中提到:
> 換成long(<2147483647) 或int ,結果就沒有出現錯誤了(不知是不是這樣子的關係),
是
--
* Post by mingchieh from bugj.Dorm11.NCTU.edu.tw
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
我是將 a與b 原先的double --> 改成 int
還有 a的 constant 太大了 要改小一點
這樣就可以執行ㄌ
--
[m [1;33m※來源 : [1;36m 台北科大計中紅樓資訊站 [1;35mredbbs.cc.ntut.edu.tw
[1;32m※FROM : [1;37m140.124.181.85 [m
改成double d=fmod(a,b); fmod()在 math.h裡
可以得到a/b的餘數。
.
.
.
.
.
.