質問: ### 前提・実現したいこと Atomでコンパイルし,コマンドプロンプトで実行しています. 2次方程式の解の個数の表示と解が1つの時に,その解を入力させて, それが正しいかどうかを表示するコードを書きたいです. ### 発生している問題・エラーメッセージ ``` d=0の時の解を入力させて,正しいかどうかを表示するコードを加えたくて,//や/*の部分を 書いて実行したところ,d=0となるa,b,cを入力したにも関わらず(a=1,b=-4,c=4),zeroと表示されました. (本当はoneと表示されるはず!)なにより不思議なのが,//や/*の部分を加えずに,単純に解の個数だけを表示させるコードの時は 先ほどのa,b,cを入力するとoneと表示されることです. ``` ### 該当のソースコード ``` #include int main(){ double a, b, c, d; double ans; printf("input real number a,b,c\n"); printf("a:"); scanf("%f", &a); printf("b:"); scanf("%f", &b); printf("c:"); scanf("%f", &c); d=(b*b)-(4*a*c); if(d>0){ printf("two \n"); }else if(d==0){ printf("one\n"); //以下の非表示部分を表示するとoneであってもzeroになる /*printf("input answer:"); scanf("%f", ans); if(ans==-b/2*a){ printf("Solved\n"); }else{ printf("Try again\n"); }*/ }else if(d<0){ printf("zero\n"); } return 0; } ``` ### 試したこと if else文の中にif elseを書いたのがまずいのかなと思い,//や/*のうち,上2行のprintfと scanfの文だけを打って実行しましたが,やはりoneと表示されるa,b,cを打ったにも関わらず zeroと表示されました. ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: > > scanf("%f", ans); > > > ansに&をつけ忘れているようです。