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

再次請問 E2054 Misplaced else 是什麼錯誤訊息?

尚未結案
ritek
一般會員


發表:8
回覆:8
積分:3
註冊:2003-10-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-24 16:16:03 IP:218.162.xxx.xxx 未訂閱
我還是錯在else部分,而錯的部分我也打上//error了,
我不知道到地錯在哪裡,test了好幾次都是錯誤,想請各位高手們幫我看看到底為何錯誤,在此先謝謝
#include
#include<math.h>
double a0,h1,a1,a2,c1,c2;
double b1,b2;
double x1,x0,x2,x3,x4;
double w1,w2,w3,w4;
double a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,x,E;
double f1,f2;
double fx,k1=0.618;    int main(int argc, char* argv[])
{
 printf("fx=p*(a*x1 b*x2)^c d*(e*x3-f*x4)^g h*(i*x2-j*x3)^k l*(m*x1 n*x4)^o:\n");
 printf("input a-o\n");
 printf("a=");
 scanf("%lg",&a);
 printf("b=");
 scanf("%lg",&b);
 printf("c=");
 scanf("%lg",&c);
 printf("d=");
 scanf("%lg",&d);
 printf("e=");
 scanf("%lg",&e);
 printf("f=");
 scanf("%lg",&f);
 printf("g=");
 scanf("%lg",&g);
 printf("h=");
 scanf("%lg",&h);
 printf("i=");
 scanf("%lg",&i);
 printf("j=");
 scanf("%lg",&j);
 printf("k=");
 scanf("%lg",&k);
 printf("l=");
 scanf("%lg",&l);
 printf("m=");
 scanf("%lg",&m);
 printf("n=");
 scanf("%lg",&n);
 printf("o=");
 scanf("%lg",&o);
 printf("p=");
 scanf("%lg",&p);
 printf("起始值=");
 scanf("%lg",&a0);
 printf("收尋步伐=");
 scanf("%lg",&h1);
 printf("fx=%g*(%g*x1 %g*x2)^%g %g*(%g*x3-%g*x4)^%g %g*(%g*x2-%g*x3)^%g %g*(%g*x1 %g*x4)^%g\n",a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);
 x1=a0;
 x2=a0;
 x3=a0;
 x4=a0;
 w1=x1 10*x2;
 w2=x3-x4;
 w3=x2-2*x3;
 w4=x1-x4;
 f1=p*(pow(w1,c) d*pow(w2,g) h*pow(w3,k) l*pow(w4,o));
 x1=a0 h1;
 x2=a0 h1;
 x3=a0 h1;
 x4=a0 h1;
 f2=p*(pow(w1,c) d*pow(w2,g) h*pow(w3,k) l*pow(w4,o));
  if (f2f2)
   {
    a=b1;
    b1=b2;
    f1=f2;
    b2=a k1*(b-a);
    goto cc;
   }
   else
    {
     b=b2;
     b1=b2;
     f1=f2;
     b1=b-k1*(b-a);
     x1=b1;
     x2=b1;
     x3=b1;
     x4=b1;
     w1=x1 10*x2;
     w2=x3-x4;
     w3=x2-2*x3;
     w4=x1-x4;
     f1=p*(pow(w1,c) d*pow(w2,g) h*pow(w3,k) l*pow(w4,o));
     goto dd;
    }
  }
 }
        //getch();     }
 return 0;
}
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-24 16:39:13 IP:140.135.xxx.xxx 未訂閱
ritek您好: 是您的if else用法錯了,將您的程式以流程圖表示您就會知道問題在哪邊了    順心
ritek
一般會員


發表:8
回覆:8
積分:3
註冊:2003-10-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-24 16:59:00 IP:218.162.xxx.xxx 未訂閱
看不出來ㄝ 我看我的流程圖沒有錯啊 我還是看不出來ㄝ 所以再來問問
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-24 17:08:36 IP:140.135.xxx.xxx 未訂閱
ritek您好:
  if(fabs((b2-b1)/b1)else            //(1)    
  {
     a=b1;
     b=b2;
     goto cc;
  }
  else //ERROR      (2)
  {
      if (f1>f2)
      {
        a=b1;
       b1=b2;
       f1=f2;
       b2=a k1*(b-a);
       goto cc;
      }
      else....  
  }
請問當流程跑到else(紅色)時,它是到(1)還是(2)呢? 發表人 -
ritek
一般會員


發表:8
回覆:8
積分:3
註冊:2003-10-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-24 18:34:59 IP:218.162.xxx.xxx 未訂閱
版大你好 我第一個else是屬於第一個if 第二個else是屬於第二個if 請問一下我要怎麼改比較好 謝謝
dd:
 if(fabs((f2-f1)/f1)     
        
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-24 18:53:01 IP:140.135.xxx.xxx 未訂閱
ritek您好:
 if(fabs((f2-f1)/f1){
   if(fabs((b2-b1)/b1)
順心 發表人 -
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-24 20:42:53 IP:61.221.xxx.xxx 未訂閱
ritek 您好: 建議您在使用if else 之類的式子時,先將 {} 加上後,再把程式寫進去,這樣這類的錯誤就會減少甚至不再發生喔,~~加油呦~~~ 學習中請大家多多指導呦~~ ☆星霧☆(Mineg Chien WU) 發表人 - mieng 於 2003/11/24 20:44:05
系統時間:2024-06-26 10:01:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!