原始碼如下:
#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」
原始碼如下:
#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了...