スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]©2ch.net (467レス)
上下前次1-新
抽出解除 レス栞
115: 2017/05/11(木)23:24:48.41 ID:1a/5L+8A(1) AAS
javaは知らないがCは制約ある
正確にはファイル名じゃなくてincludeで指定する文字列だけど
279(1): 2018/01/27(土)14:20:38.41 ID:EckHRazm(3/10) AAS
説明のために>>276のプログラムをfloatに戻したものを考えると
(result < 1.732050776f)という比較ではresultが1.732050776fだった場合に
1.732050776は√3未満であるのに合格リストの方に載ってしまうということです
計算上の誤差があるとかdoubleの有効桁数が多いとかでなく
プログラム内の数値の取り扱いに関係なく、実際の紙の上では間違いが起こってほしくないということです
うまく説明できてるかどうかわかりませんが、実行時どの程度誤差を許容できるかは問題ではないんです
結果を見せた時に、どうしてこの値がこっちのリストに載っているわけ? 直しておいてくれる?
と言われれば、どうせ境界値付近の値なんてどちらのリストに載っていようと計算誤差もあるしいずれにしても正確とは言えないんですよ
では通じないんです...
≒をどちらに組み込むかを決めておくというのも、結局は事前に求めておく>>274の手法と同じ手間がかかりませんか
要件の数値(実数)が変われば、切り上げか切り下げのどちらであるかも変わってしまいますから
どちらになっているかを確かめなくてはいけないですよね
331(1): 2018/02/16(金)06:26:26.41 ID:6scYlSnj(1/2) AAS
>>328
セグメンテーションフォールトを起こす直接の原因は、
memset() の第1引数 &aaa + sizeof(uint32_t) * 2 の部分だろうね。
printf("%p\n", &aaa);
printf("%p\n", &aaa.c);
printf("%p\n", &aaa + sizeof(uint32_t) * 2);
上の3行の出力を比較検討すると理屈が分かると思うけど説明は長くなる。
というか、俺にはポインタ加算について短く平易に説明する能力がない。
#include <stddef.h> // offsetof()マクロの定義
if (b == 1)memset(&aaa.c, 0x00, sizeof(aaa) - offsetof(struct aaa_tag, c);
で動くと思うけど、
ダミーの構造体に読み込んでから、bの値を見て有効な部分だけ
(あらかじめ0クリアしておいた)返却用の構造体にコピー、とする方が素直かも。
359(1): 2018/06/03(日)22:24:50.41 ID:exGCEUzZ(1) AAS
自爆機能は男のロマン
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s