#5866: 想請問一下 這題用C寫是不是不能用指標?


mofom123 (Hong0308)

學校 : 實踐大學
編號 : 13226
來源 : [1.161.92.215]
最後登入時間 :
2022-02-24 21:30:43
a006. 一元二次方程式 | From: [118.167.21.61] | 發表日期 : 2011-09-27 19:20

原始碼如下:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

void max(double &a ,double &b){

     

/*比較大小 大的放前面*/ 

     double t;

     if(b>a){

             t=b;

             b=a;

             a=t;

     }

 

}

 

main(){

       int a,b,c;

       int answer;

       double x1,x2;

       for(;;){

       //讀參數 

           if(scanf("%d %d %d",&a,&b,&c)==EOF) break;

           //printf("[%d] [%d] [%d]",a,b,c);

           //判斷式 b^2- 4*a*c   (answer)

           answer=b*b-(4*(a)*(c));

           //printf("a=%d\n",answer);

           //判斷式小於0 無實根 

           if(answer<0) printf ("No real root\n");

           //判斷式等於0 有重根 

           if(answer==0) printf ("Two same roots x=%d\n",-(b/(2*a)));

           //判斷式大於0 有兩個不同的實數根

           if(answer>0){

               x1=((-b)+sqrt(answer))/(2*a);

               x2=((-b)-sqrt(answer))/(2*a);

               max(x1,x2); 

               printf("Two different roots x1=%d , x2=%d\n",int(x1),int(x2));

           }

       }

 

       

       

system("pause");

}

 

 

P.s 所有的註解+ system("pause"); 都有刪掉

 

錯誤訊息:

第 1 測資點(20%): CE ()
編譯錯誤
code_907767.c:5: 錯誤:expected 「;」, 「,」 or 「)」 before 「&」 token code_907767.c: In function 「main」: code_907767.c:35: 錯誤:expected expression before 「int」 

 

 
#5867: Re:想請問一下 這題用C寫是不是不能用指標?


mofom123 (Hong0308)

學校 : 實踐大學
編號 : 13226
來源 : [1.161.92.215]
最後登入時間 :
2022-02-24 21:30:43
a006. 一元二次方程式 | From: [118.167.21.61] | 發表日期 : 2011-09-27 21:14

原始碼如下:

#include

#include

#include

void max(double &a ,double &b){

 

/*比較大小 大的放前面*/ 

     double t;

     if(b>a){

             t=b;

             b=a;

             a=t;

     }

 

}

 

main(){

       int a,b,c;

       int answer;

       double x1,x2;

       for(;;){

       //讀參數 

           if(scanf("%d %d %d",&a,&b,&c)==EOF) break;

           //printf("[%d] [%d] [%d]",a,b,c);

           //判斷式 b^2- 4*a*c   (answer)

           answer=b*b-(4*(a)*(c));

           //printf("a=%d\n",answer);

           //判斷式小於0 無實根 

           if(answer<0) printf ("No real root\n");

           //判斷式等於0 有重根 

           if(answer==0) printf ("Two same roots x=%d\n",-(b/(2*a)));

           //判斷式大於0 有兩個不同的實數根

           if(answer>0){

               x1=((-b)+sqrt(answer))/(2*a);

               x2=((-b)-sqrt(answer))/(2*a);

               max(x1,x2); 

               printf("Two different roots x1=%d , x2=%d\n",int(x1),int(x2));

           }

       }

 

 

 

system("pause");

}

 

 

P.s 所有的註解+ system("pause"); 都有刪掉

 

錯誤訊息:

第 1 測資點(20%): CE ()
編譯錯誤
code_907767.c:5: 錯誤:expected 「;」, 「,」 or 「)」 before 「&」 token code_907767.c: In function 「main」: code_907767.c:35: 錯誤:expected expression before 「int」 

 

後來自己再重新寫了...

 

把副程式max拿掉 然後強制轉換類型(int)也拿掉   就AC了...

 
ZeroJudge Forum