自分は、現在2点から辺の長さを求めるプログラムを作成しています。
そこで疑問が出てきたので、いくつかお答えいただければ恐縮です。
まずは、以下に簡単なコードを記載します。
C
1#include <stdio.h> 2#include <stdint.h> 3 4#define TOL 0.1 5 6typedef struct _point {//座標(X,Y) 7double x;//ここはdouble_tを使用すべき?? 8double y; 9} POINT; 10 11void perimeter(POINT* point1, POINT* point2, double value;) { 12 //ここでまず構造体のメンバの値が空でないか確認 13 //...... 14 //求まった値を出力引数(value)に格納 15} 16int main() { 17 POINT point1;//point1のx,yを格納 18 POINT point2;//point2のx,yを格納 19 //何かしらの処理をして構造体に値を代入 20 perimeter(&point1, &point2, &value); 21 22}
簡潔で申し訳ないのですが、以上のようなコードを作成しようとしています。
そこで質問させていただきたいのが以下になります。
・perimeter関数の引数である構造体のメンバがNULL?空?きちんと入力されているか確認したいと考えたのですが、
if ((point1->x == NULL)...で確認を行おうとしたら、"invalid operands to binary == ...."と記載されてコンパイルに失敗しました。
他の確認方法はありますでしょうか?というのが1点です。
・上記コードにも記載したのですが、マク定義で記載した"TOL"についてです。
調べたら、一応これが、求まった値による許容誤差だということはわかったのですが、、、、以下のことが曖昧で分かっていません。
//求まった答えが例えば(14.234567(double)の場合、
->TOL(0.1)なので、14.2?と答えが出るようにコードを作成すればいいということでしょうか?
的はずれな考えをしていたら申し訳ないです。
以上です。
長々と申し訳ありませんが、よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/19 02:29