總網頁瀏覽量

2015年10月14日 星期三

[C/C++] Equation

能夠用這種方式測試的程式通常都有特殊的形式, 也必須避開某些浮點數的表示問題, 並不能代表所有類型的程式, 下面這個例子裡同學可以觀察到關鍵問題的所在 


題目

程式輸入三個浮點數 a, b, c 指定一個二元一次方程式 ax + by + c = 0 代表平面上的一條直線, 請再輸入一個浮點數 x0, 程式計算直線 ax + by + c = 0 與直線 x = x0 交點的 y 座標 (小數點後請四捨五入列印至 6 位數), 如果沒有交點請輸出 NA 請留意下面測試輸出資料裡的空格、標點符號、還有換列字元,需要完全一樣才會通過測試(這一個練習有五組測試資料,一組就顯示在下面,另外四組你提交之後 在結果的網頁裡看得到,一般情形下我會留下幾組測試資料是完全不顯示的,在這些資料中我會避免那種很特別、不太會發生的資料)

Input: 

1.1 2.2 -3.4
1.5


Output:

0.795455
 
 
-------------------------------------------  


#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

int main(void){
    double x=0,y=0,z=0,s=0;
    cin>>x;
    cin>>y;
    cin>>z;
    cin>>s;

    if(y == 0){      
        printf("NA\n");
        system("pause");
        return 0;
    }
        printf("%.6f\n",0-((s*x)+z)/y);
//因為算出來得數要等於0, 所以要多一個負號

    system("pause");
    return 0;
}

沒有留言:

張貼留言