• ベストアンサー

計算式について

kmb01の回答

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.2

整数除算が先に行われ、 A / B = 0だからです。 浮動小数で計算するために C=(double)A / B等のように書く必要があります。

t-tree
質問者

お礼

お答えありがとうございました。 答えを入れる変数が浮動小数な変数ならOKかなと思ったのですが・・・ 浮動小数の答えが出る可能性がある計算には答えの変数だけではなく、計算に使われる変数にも同様な変数を使わなくてはいねないのですね。 よくわかりました、ありがとうございました。

関連するQ&A

  • 行列の計算

    2行3列のマトリクスAと3行2列のマトリクスBの各要素(整数)をキーボードから読み込み、 C=A×BとなるマトリクスCを計算するプログラムを作りたい。 ただ、配列を使用せずに読み込み・計算・出力で作らなくてはなりません。 (まだ配列の勉強をしていないので…)    a11 a12 A= a21 a22    A31 a32    b11 b12 b13 B= b21 b22 b23 C=? 参考書などで調べたところ int main( void ) { int i, j; double a[3][3] = { { 1, 2, 1 }, { 3, 4, 3 }, { 1, 2, 1 } }; double b[3][3] = { { 1, 2, 3 }, { 1, 1, 1 }, { 3, 2, 1 } }; double c[3][3]; for( i = 0 ; i < 3 ; i++ ){ for( j = 0 ; j < 3 ; j++ ){ c[i][j] = a[i][j] + b[i][j]; } } } のようなものがでてきました。 数字を変え、+を*にしてやってみたのですが、うまくいきませんでした。 また、a11のような数字は認識しませんでした。 プログラム初心者で理解するのに時間がかかるかもしれませんが、 どなたかアドバイスお願いします。

  • (int)/(int)=(double)にする方法

    (int)/(int)=(double)にする方法を教えて下さい。 例えば、 int a, b; double c; a=1; b=2; c=a/b; とすると、cとして0が計算されますよね。 0でなく0.5と計算させる方法をご存知の方教えて下さい。 ちなみに、a,bを最初の宣言の時点でdouble型にすることはできません。 よろしくお願いいたします。

  • AppleWorksの表計算

    初歩的質問で申し訳ないのですが、例えばA1とB1の差を計算しようとしてセルC1にA1-B1と入力しても A1-B1という文字列になり、計算結果になりません。ヘルプを見てもいろいろ書いてありますが、文字列でなく、計算式にするにはどうしたら良いのかという一番肝腎なことが書いてありません(もしくは書いてあるのかもしれませんが、容易にはわかりません)。つまらない質問ですが、よろしくお願いします

    • ベストアンサー
    • Mac
  • エクセルである条件の時に計算結果を非表示にする

    初歩的な質問で恐縮です。 例えば、C2のセルに「=A2*B2」という計算式を入れたとします。 その場合、B2のセルが空白の時、C2も空白にするにはどうしたらよいでしょうか。 もちろんB2に数字が入力されれば、C2には計算結果を表示させたいです。

  • 計算速度をはやくするには

    問題 a^5 + b^5 + c^5 + d^5 = e^5 が成立する場合のa,b,c,d,eを計算するプログラムを作成したのですが、処理速度が30秒もかかってしまいます。 どこを変更、または何を追加すれば速くなるか教えてください。 条件は a < b < c < d < e a,b,c,d,e, < 200 です。 どうかご教授お願いします。 #include <stdio.h> int main (void) { int a,b,c,d,e ; double A5,B5,C5,D5,E5; for(a = 1; a <= 195 ; a++ ) { A5 = a * a * a * a * (double)a ; for(b = a+1; b <= 196 ; b++ ) { B5 = b * b * b * b * (double)b ; for(c = b+1; c <= 197 ; c++ ) { C5 = c * c * c * c * (double)c ; for(d = c+1; d <= 198 ; d++ ) { D5 = d * d * d * d * (double)d ; for(e = d+1; e <= 199 ; e++ ) { E5 = e * e * e * e * (double)e ; if((A5 + B5 + C5 + D5 ) == E5) { printf("a=%d,b=%d,c=%d,d=%d,e=%d\n",a,b,c,d,e); printf("a^5=%.0lf,b^5=%.0lf,c^5=%.0lf,d^5=%.0lf,e^5=%.0lf\n",A5,B5,C5,D5,E5); } } } } } } return 0; }

  • 計算式や注意書きなどの記述は?(HTML5)

    お世話になります。 今回も本当に初歩な内容で申し訳ありません。 HTML5で、下記のような計算式の部分や注意書きの部分は、 どのタグで記述すれば適切でしょうか。 ---------------- aを求める計算式は、下記の通りとする。 a = b * c + d 注1) b及びcは~とする。 注2) dは~~~~でなければならない。 ----------------- 以上になります。 一見、式は<q>かとも思いましたが、引用ではないし、 <details>でも違うようです。 注)に関しては、<small>かとも考えてみましたが、 やはり違うようです。 ふさわしいタグを教えていただけますでしょうか。 よろしくお願いいたします。

  • Javaの計算について

    Java初心者です。以下の問題で、c = 10になるのか判りません。括弧が先に計算されるのではないのでしょうか?どなたか解説していただけませんでしょうか? public class M{ public static void main(String[] args){ int a = 5; int b = (a = 2) * a; a = 5; int c = a * (a = 2); System.out.println("b = " + b + " c = " + c); } }

    • ベストアンサー
    • Java
  • エクセル 違うシートに計算式がある場合

    エクセル2000を使っています。 下記の計算をしたいのですが、方法を教えてください。 1.Sheet1 A1とB1に計算したい元の数値が記入されています。 例えば、A1=1 B1=2 2. Sheet2 のA1とB1に数値が入る事としてC1に計算結果が出るものとします。 3. Sheet1のC1にSheet2のC1の内容を表示したい。 4. Sheet1 A2、A3・・・・・、B2、B3・・・・・に入力した後で、C2、C3・・・・・・に Sheet2のC1で計算させた結果を自動的に入力したい。 別の言い方をすれば、Sheet2 のA1・B1が関数の入力するところにあたり Sheet2のC1が関数の出力(というか、計算結果)にあたります。 Sheet1からSheet2を関数のように使いたいのです。 Sheet1 ____ A_____B_______C 1___1_____2______3 2___2_____3______5 3___5_____8______13 4___9_____1______10 5___4_____5______ 9 Sheet2 ____A_____B_____C 1________________ =A1+B1 2_____________________ こんなイメージです。 Sheet2で計算の入力に対応するセルがA1・B1 計算結果が書いてあるのがC1 実際は、大きな表を参照しながら計算するので、色々計算した結果(途中計算は他のセルも使います)がC1に表されます。 以上、よろしくお願いします。

  • 計算結果が合わない

    下記の計算をしています(計算式=ABC/F+G(D+E) 電卓及びexcelで計算すると、結果の3,683まではあっているのですが、 下記表の4行目の結果が、電卓では、9,684、Excelで計算すると、 どうしても8,507となってしまいます。 計算式が間違っているのでしょうか?? Excel計算式 =B21*C21*D21/G21+H21*(E21+F21) 何度、電卓で計算しても、9,684となってしまいます。 よろしくお願いいたします。 A B C D E F G 結果 2.64  1312.5  511 11.49  1.5  5407  0 327 27.6  1312.5  511 11.49  1.5  5407  20 3,683 23.76 1312.5  511 11.49  1.5  5407  428 9,684

  • C言語で計算が合いません(初心者)

    C言語で計算が合いません(初心者) 簡単な計算のプログミングをしているのですが 計算が合わなくて困っています。 整数型変数aと実数型変数bを定義 整数型変数cとdを定義して、c=0.5*a*b、d=a/2*b 実数型変数eとfを定義して、e=0.5*a*b、f=a/2*b という内容のプログラムを作ったのですが a=7,b=2.4を代入してみた結果 ---------------------------- Input a>>7 Input b>>2.4 8 7 8.400000 7.200000 ---------------------------- となりました どこが間違っているのでしょう? 答えは8.4でcが8なのは有効数字のためだと思いますが dとeで答えが全く違う理由が分かりません。 下に私が書いたものを貼っています。 ---------------------------- #include<stdio.h> int main(void){ int a,c,d; double b,e,f,ans; printf("Input a>>"); scanf("%d",&a); printf("Input b>>"); scanf("%lf",&b); c=0.5*a*b; printf("%d\n",c); d=a/2*b; printf("%d\n",d); e=0.5*a*b; printf("%lf\n",e); f=a/2*b; printf("%lf\n",f); return 0; } ---------------------------- よろしくお願いします。