プログラミングでdoubleの箱が突然2つでてきて混乱しています

このQ&Aのポイント
  • あるプログラミングでdoubleの箱が突然2つでてきて混乱しています。
  • 読み込んだ実数値が10で割りきれるかどうかを判定しているプログラムです。
  • 突然double mが現れた理由についてわかりません。
回答を見る
  • ベストアンサー

あるプログラミングでdoubleの箱が

こんにちは、 とあるプログラミングでdoubleの箱が突然2つでてきて混乱しています。 //読み込んだ実数値は10で割りきれるか #include <cmath> #include <iostream> Using namespace std; Int main() { Double x; Cout <<"実数値: "; cin >> x; If (double m = fmod(x, 10)) { Cout<<"その値は10で割りきれません。\n"; Cout<<"剰余は"<< m << d"です。"\n"; } else{ Cout"その値は10で割りきれます" \n"; } } とあり、なぜ突然double mがでてきたのでしょうか? すみません m(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.2

>剰余とはなんでしょうか? >また、それをする意味はなんですか fmod()を使用していますが、それが剰余を計算する関数です。 剰余とは簡単に言うと、割り算の「あまり」のことです。 例: 10割る4の剰余は2です。

question_april
質問者

お礼

有り難うございます 余剰について「わり算をしたときの余り」とわかりました!

その他の回答 (1)

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.1

>If (double m = fmod(x, 10)) { xを10で割った剰余をdouble mに入れています。 if分の条件の所で宣言も同時に行っているのです。

question_april
質問者

補足

すみません。 頭の良い回答をいただいておいて恐縮なのですが、難しいですm(__)m 剰余とはなんでしょうか? また、それをする意味はなんですか

関連するQ&A

  • javaプログラミング

    以下のプログラムがコンバイルできません なぜでしょうか? #include<iostream> #include<cmath> using namespace std; int main() { double a, b; cout << "実数 a の値を入力してください " << endl; cin >> a; cout << "実数 b の値を入力してください " << endl; cin >> b; cout << a << " の " << b << " 乗は " << pow(a, b) << "です" << endl; return 0; }

    • ベストアンサー
    • Java
  • ''C++の条件分岐分からないんですが

    #include<iostream> using namespace std; int main(){ int a; cout << "数値を入力してください\n"; cin >> a; if( a > 30) cout <<"31以上ですね\n"; } else if(a<10){ cout <<"10未満ですね\n"; } else { cout <<"30以下で10以上ですね\n"; } return 0; } これが例文なんですが、 変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる 文字変数mの中身が'a'ならば、『aが格納されています』と表示させて、'a'でないならば『'a'でない文字が格納されています』と表示させたあと、変数bとcを使った『b=b+c』を計算する。 変数aが、変数bより小さい場合には、『aはbより小さいです』と表示し、変数bより大きい場合には、『aはbより大きいです』と表示し、変数bと等しい場合には、『aとbは等しいです』と表示する #include<iostream> using namespace std; int main(){ int a; if(a < b) { __cout("aはbより小さいです\n"); } else { __c = a + b; }return 0; } #include<iostream> using namespace std; int main(){ int a; if(m == 'a') __cout("aが格納されています\n"); } else { __cout("\'a\'でない文字が格納されています\n"); } return 0; } #include<iostream> using namespace std; int main(){ int a; if(a < b) { __cout("aはbより小さいです\n"); } else if(a == b) { __cout("aとbは等しいです\n"); } else { __cout("aはbより大きいです\n"); } return 0; } これ合ってますか?あとプログラミング環境すらないので実行結果教えてもらっていいですか?

  • 改行文字について

    #include<iostream> using namespace std; int main(void) { char c; while (cin.get(c)) if (c == '\n') cout << "[RET]\n"; else cout << c; return(0); } これのif (c == '\n')の改行文字と等しいとは何のことを指すのでしょうか? よろしくお願いします。

  • 二分法のC++プログラム

    #include<iostream> #include<cmath> using namespace std; int main(){ double x1, x2, c; cout <<"x1:"; cin >> x1; cout <<"x2:"; cin >> x2; while(fabs(x2-x1) > 0.00001){ c=(x1+x2)/2; if(cos(x1/2.0)*cos(c/2)>=0) x1 = c; else x2 = c; } cout << "x=" << x1 <<endl; return 0; } cos(x/2)=0の解となるxを挟んでいないx1,x2を与えると、結果は保証できないですが、それは別にいいんですか?それはダメだとするとどこを訂正すればいいんですか

  • 二次方程式のプログラム

    C++で二次方程式の解を求めるんですが、虚数解の場合、a=0の場合、実数解の場合で求めるようにしているんですが、 #include <iostream> #include <cmath> using namespace std; int main() { double a,b,c; cin >> a >> b >> c; if(a==0) { cout << (-c/b) << '\n'; } else if((b*b-4*a*c)<0) { cout << (-b/2/a) << 'i' << sqrt(4*a*c-b*b)/2/a << '\n'; } else { この先の最後の一文教えてください。抜けてて書いてないんです。

  • 二分法のC++プログラム

    #include<iostream> #include<cmath> using namespace std; int main(){ double x1, x2, c, a; double x1, x2, c; cout <<"x1:"; cin >> x1; cout <<"x2:"; cin >> x2; while(x2-x1 > 0.00001){ c=(x1+x2)/2; c=(x1+x2)/2; if(cos(x1/2)*cos(c/2)>=0) x1 = c; else x2 = c; } cout << "x=" << x1 <<endl; return 0; } x1 cos(x/2)って入れると x2 -9.25596e+061 って出て cos(pi/2)って入れても同じ風に出てしまうんですがこれも同じように出るんですが故障ですか? x1に3と入れると x2が出てきて、x2は4と入れると xが3.14159と出て、3回xが出ますが、上の2つ(cos(pi/2)とcos(x/2))はx1とx2しか出ません .

  • C++で二分法のプログラム

    C++で二分法のプログラムを作るんですが x1-x2が十分小さくなれば(10^-5)終了する 例 cos(x/2)の解を出す これどうやればいいんですか?whileを使うらしいですが。 文法というのは、 if系、while、switch、continue、for、break文くらいしかやってないんですが #include <iostream> #include <cmath> using namespace std; int main() { までは行きますが… 出力はcout 入力はcinでお願いできないでしょうか

  • C++で等差数列の和に関する問題をご教授ください

    #include<iostream> using namespace std; double sum(double n) { return (1/2)*n*(1+n); } int main() { double n; cin>>n; cout<<"1から最後までの和は"<<sum(n)<<endl; } ソースコードは以上ですが,for文使わずに1から公差が1である数列のn番目までの和を求めたいです。  以上のソースでコンパイルはできますが,実行してみると,和はすべて0になります, double型にしているので, 整数の問題ではないと思いますけど,どうなんでしょうか? よろしくお願いします。

  • C++の二次方程式のプログラム

    #include <iostream> #include <cmath> using namespace std; int main() { double a,b,c; cin >> a >> b >> c; if(a==0) { cout << (-c/b) << '\n'; } else if((b*b-4*a*c)<0) { cout << (-b/2/a) << 'i' << sqrt(4*a*c-b*b)/2/a << '\n'; } else { cout << (-b/2/a) << sqrt(4*a*c+b*b)/2/a << '\n'; } return 0; } 最後のelseの下のcoutが本当に分からないんで教えてくださいお願いします。一応この条件(a=0の時、aが0以上の時、aが0以下の時)で出題されてるんですが…

  • c++ 整数値の各桁を足し合わせるプログラム

    上記の通りの質問です #include <iostream> using namespace std; int main () { int x; int sum = 0; cout << "正の整数値の各桁を足す。\n " ; do{ cout << "正の整数値:"; cin >> x; }while (x <= 0); cout << "足すと"; while (x > 0){ cout << sum += x % 10; x /= 10; return sum; } cout << "です。\n " ; } とまでは書けましたがうまくいきません。 初心者なので簡単かもしれませんがお願いします。

専門家に質問してみよう