全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:888
推到 Plurk!
推到 Facebook!

VC的邏輯問題

尚未結案
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-08 23:50:27 IP:218.162.xxx.xxx 未訂閱
下面是一個不需要判斷先乘後加的4則運算    讀入的題目長度不ㄧ定例如 6.53*5+3-8...可增可減    問題到最後答案算出來的時候,要再把題目再印一次    這裡我解不出來啦><    EX:題目讀入6.53*5+3-8    印出6.53*5+3-8=28    
 #include
int main(void)
{
        float sum,num[100];
        char figure[100];
        int numcount=0,figurecount=1,i;            FILE*fp;
        fp=fopen("4.txt","r");
        while(!feof(fp))
        {
        fscanf(fp,"%f%c",&num[numcount],&figure[figurecount]);
                numcount  ;
                figurecount  ;
        }
        sum=num[0];
        for(i=1;i        誰說女生不會寫程式,只是寫的比較爛..><
        
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-09 01:00:12 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    請把妳原來程式碼中的 printf("%0.01f",num[i]); 敘述改成 printf("%0.03g",num[i]);,看看是不是妳要的結果?如果是的話,請再查看 Help 中有關 printf() 函式的相關說明,以便設定適當的小數點顯示位數 (如果妳要處理的小數點位數會超過兩位數的話)。 7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-09 01:05:44 IP:218.162.xxx.xxx 未訂閱
不是顯示的小數點問題啦 讀入題目後,我不會把它再印出來,因為分成數字和符號2個陣列了 配合for不知道怎做 謝謝^^ 誰說女生不會寫程式,只是寫的比較爛..><
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-09 01:09:59 IP:218.162.xxx.xxx 未訂閱
我目前是照這樣做的          for(i=0;i< 誰說女生不會寫程式,只是寫的比較爛..><
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-09 01:19:51 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    我這邊使用 BCB 來測試時,是可以正常顯示 "=" 符號的,可能是 VC 與 BCB 在這個動作上有些差異吧? 妳可以再試著將 printf("=%.f",sum); 的敘述改成 printf("\=%.f",sum); 試試看 (在 = 符號之前加上一個 \ 反斜線符號)。 7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-09 01:25:35 IP:218.162.xxx.xxx 未訂閱
這樣子編譯就不會過了 出現?的原因好像是因為符號位元少一碼 例如:7 8 9 10--->數字有4碼,但是符號只有3碼少一碼,所以會出現? 至於答案28前面的=爲何被蓋過去我就不知道了>< 誰說女生不會寫程式,只是寫的比較爛..><
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-09 01:34:53 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    那麼再試著在 printf("%c",figure[i 1]); 前面加上一行試試看:
if(i
7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-09 01:41:22 IP:218.162.xxx.xxx 未訂閱
耶成功了~剛想一下沒想出來爲何這樣可以 我頭昏昏了~明天再來想^^ 不過有辦法讓小數點後面為0的都沒有嗎? EX: 6.53- OK 8.00- 不行 3 - OK 這我剛想到的~趕明兒再來解決~ RedSnow大大先晚安~我支持不住了先倒了..>< 誰說女生不會寫程式,只是寫的比較爛..><
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-09 01:43:46 IP:59.115.xxx.xxx 未訂閱
另外補充一下,我將程式後段改成如下:
    for(i=0;i
輸出的結果為: 6.53*5 3-8=27.65 這樣子好像比較接近妳一開始所想要的輸出結果,而且輸出的小數點運算比較精確 (不會進位成 28)。 7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-09 10:58:34 IP:218.162.xxx.xxx 未訂閱
呵呵~~我弄懂了~~有去查書啦 謝謝你喔^^ 誰說女生不會寫程式,只是寫的比較爛..><
系統時間:2024-05-18 6:40:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!