請問一下整除 及 log10 的問題 |
尚未結案
|
longhair_pan
一般會員 發表:5 回覆:4 積分:1 註冊:2004-09-30 發送簡訊給我 |
我寫一段算間距的程式, 比如說 36 ~ 128 時, 會算出中間的間距
變成 36 , 40 , 50, 60, 70, 80, 90, 100, 110, 120, 128
最間最多 9 個間距數字
但程式在編譯的時候, 會出現 Illegal character '\' (0x5c)
那我已經用 int 宣告變數了, 我想用 / 應該也會整除
於是把 \ 改成 / , 結果執行到我呼叫這段程式時,
又出現 log10: SING error 的錯誤訊息
程式碼如下, 有人可以幫我 debug 一下嗎? 謝謝 int CalculateGap(int Min_Value,int Max_Value){
int i;
int Gap;
int OrderOfGap;
int FirstGap;
int NumOfGap;
Gap=(Max_Value-Max_Value)\10;
OrderOfGap=(log10(Gap)-1);
OrderOfGap=10 ^ OrderOfGap;
if ((Gap\OrderOfGap)>5) {Gap=10*OrderOfGap;}
if ((Gap\OrderOfGap)<=5) {Gap=5*OrderOfGap;}
if ((Gap\OrderOfGap)<=2) {Gap=2*OrderOfGap;}
if ((Gap\OrderOfGap)<=1) {Gap=OrderOfGap;} FirstGap=((Min_Value/Gap) 1)*Gap;
NumOfGap=(Max_Value-FirstGap)\Gap; return NumOfGap;
}
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
改成這樣吧~
並在上頭宣告: #include "Math.h"
int CalculateGap(int Min_Value,int Max_Value);
...... ........... int CalculateGap(int Min_Value,int Max_Value){ int i; int Gap; int OrderOfGap; int FirstGap; int NumOfGap; Gap=(Max_Value-Min_Value)/10; OrderOfGap=(log10(Gap)-1); OrderOfGap=10 ^ OrderOfGap; if ((Gap/OrderOfGap)>5) {Gap=10*OrderOfGap;} if ((Gap/OrderOfGap)<=5) {Gap=5*OrderOfGap;} if ((Gap/OrderOfGap)<=2) {Gap=2*OrderOfGap;} if ((Gap/OrderOfGap)<=1) {Gap=OrderOfGap;} FirstGap=((Min_Value/Gap) 1)*Gap; NumOfGap=(Max_Value-FirstGap)/Gap; return NumOfGap; }可正確編譯了~你原本的問題因該即是沒宣告~還有除號用錯b][/b] |
longhair_pan
一般會員 發表:5 回覆:4 積分:1 註冊:2004-09-30 發送簡訊給我 |
|
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
longhair_pan
一般會員 發表:5 回覆:4 積分:1 註冊:2004-09-30 發送簡訊給我 |
非常感謝您的回應
程式已經可以正確算出我要的結果了....
不過又有一個百思不解的現象....
以下是程式的一部份, LabelX[10] 是我一開始產生的十個 Label 物件
我按下 F5 , Run 的時候, 我修改 Edt_MaxX 後按下 Enter, 並沒有任何 Label出現
但我在以下任意地方設一個中斷點, 執行到那行之後會 pause, 按下 F5 繼續執行, 又可以看到 LableX 正常地排列, 請問該如何解決? 謝謝。 int CalculateGap(int Min_Value,int Max_Value){
int i;
int j;
int Gap_Calc=0;
int Gap=0;
int OrderOfGap=1;
int FirstGap=0;
int NumOfGap=0;
float Numer=0;
Gap_Calc=((Max_Value-Min_Value)-((Max_Value-Min_Value)))/10;
j=(log10(Gap_Calc));
for (i=1;i<=j;i++)
{
OrderOfGap=OrderOfGap*10;
}
Numer=float(Gap_Calc)/float(OrderOfGap);
if ((Numer)>5) {Gap=10*OrderOfGap;}
if ((Numer)<=5) {Gap=5*OrderOfGap;}
if ((Numer)<=2) {Gap=2*OrderOfGap;}
if ((Numer)<=1) {Gap=OrderOfGap;} FirstGap=((Min_Value/Gap)+1)*Gap;
NumOfGap=(Max_Value-FirstGap)/Gap; //==========
for (i=0;i<10;i )
{
LabelX[i]->Visible=false;
}
for (i=0;i
|
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |