C/C++プログラミング入門 – もっと複雑な計算を行う

この記事は1年以上前に掲載されたものです。 情報が古い場合がありますのでお気を付け下さい。

C/C++プログラミング入門 – 計算を行うでは、簡単な計算を行った。ここでは、より複雑な計算方法を行ってみたい。

複雑な計算

まずは、以下の計算式の答えはいくらになるだろうか?

3 + 4 × 12 − 6 ÷ 3

これを知るために以下のコードを書いてみよう。

サンプルコード

C言語

[code lang=”c”]#include <stdio.h>
#include <stdlib.h>

int main() {
printf("答えは%dです。n", 3 + 4 * 12 – 6 / 3);
return EXIT_SUCCESS;
}[/code]

C++

[code lang=”c”]#include <iostream>
#include <cstdlib>

int main() {
std::cout << "答えは" << 3 + 4 * 12 – 6 / 3 << "です。" << std::endl;
return EXIT_SUCCESS;
}[/code]

保存したあと、コンパイルして実行すると、「答えは169です。」と表示される。なぜそうなるのだろうか。

計算の法則として、まずは掛け算と割り算からはじまり、そのあとに足し算と引き算が行われる。となると、まずは14×12=168となり、6÷3=2となる。すると、以下の計算式となる。

3 + 168 − 2

そして、足し算と引き算を行うことのだが、足し算と引き算は同じ優先順位となるため((掛け算と割り算も同じ優先順位))、左から計算される。つまり、3+168を行って171となり、それから2を引いて169となるのである。

参考: カッコが含まれている場合

なお、計算式の中にカッコで囲まれているものがある場合、それはカッコで囲まれているものから計算されるようになっている。これについての法則はJavaプログラミング入門 – もっと複雑な計算を行うのうちの、「カッコが含まれている場合」の項と法則はほぼ同じである。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。ご用の方はコメントかコンタクトフォームにて。