C言語で数値の範囲(レンジ)を出力する方法をわかりやすく解説
問題
与えられた数値に対して、その数値がどの範囲(レンジ)に属するのかを求めるプログラムを作成します。
解決策
ここでは、C言語を使って数値の範囲を求める方法を学びます。
範囲を求めるために使うロジックは以下の通りです。
lower = (n/10) * 10; /* 算術演算子は左から右へ順に処理される */ upper = lower + 10;
ポイントは、int型同士の除算では小数点以下が切り捨てられ、商(整数部分)だけが返されるというC言語の仕様を利用している点です。これにより、一の位を切り捨てた数値(10の倍数)を簡単に求められます。
解説
例として、数値 n = 45 の場合を考えてみましょう。
lower = (45 / 10) * 10 // 整数除算では商が返される
= 4 * 10 = 40
upper = 40 + 10 = 50
したがって、求める範囲は lower ~ upper、つまり 40 ~ 50 となります。
サンプルプログラム
以下は、数値の範囲を出力するC言語プログラムです。
#include<stdio.h>
main(){
int n, lower, upper;
printf("Enter a number:");
scanf("%d", &n);
lower = (n/10) * 10; /* 算術演算子は左から右へ順に処理される */
upper = lower + 10;
printf("Range is %d - %d", lower, upper);
getch();
}実行結果
上記のプログラムを実行すると、以下のような結果が表示されます。
Enter a number:25 Range is 20 – 30
次に、変数名を変えたもう一つのバージョンのプログラムを紹介します。ロジックはまったく同じで、読みやすさを意識した命名になっています。
#include<stdio.h>
main(){
int number, start, end;
printf("Enter a number:");
scanf("%d", &number);
start = (number/10) * 10; /* 算術演算子は左から右へ順に処理される */
end = start + 10;
printf("Range is %d - %d", start, end);
getch();
}実行結果
上記のプログラムを実行すると、以下のような結果が表示されます。
Enter a number:457 Range is 450 – 460
補足
サンプルコード内の getch() はTurbo Cなど古い環境向けの関数です。GCCなどの現代的なコンパイラを使用する場合は、getch() の行を削除するか、conio.h の代わりに標準の入出力関数を利用してください。また、負の数を入力した場合の挙動(切り捨ての方向)は処理系によって異なる場合があるため、実務では注意が必要です。
-
Pythonで画面に出力するには?print文の基本と使い方を解説
Pythonで画面(標準出力)に文字や値を表示する最も基本的な方法は、print文を使うことです。>>> print Hello, world Hello, worldカンマ区切りで複数の項目を出力する同じ行に複数の項目をスペースで区切って表示したい場合は、項目の間をカンマで区切ります。>>> print Hello,, World Hello, Worldこの例では、どちらの文字列にもスペースは含まれていませんが、2つのオブジェクトの間にあるカンマによって、print文が自動的にスペースを挿入してくれます。さまざまなデータ型の出力print文は文字列だけで
-
ExcelのROUND関数で数値を丸める方法|四捨五入をわかりやすく解説
Excelで資料を見やすく整えたいとき、数値を小数点以下や整数単位で丸めると、ぐっと読みやすくなります。数値を丸めるということは、重要度の低い桁を取り除くことを意味します。その結果、必要な精度を保ちながら、より見栄えの良い値に仕上げることができます。 丸め処理は、概算を示したり、数値を扱いやすくしたりする目的でよく使われます。たとえば、割引率を計算して「17.3587563」という数値が出た場合、小数第1位で丸めれば「17.4%」となり、はるかに見やすくなります。この記事では、ROUND関数を使って数値を丸める方法を詳しくご紹介します。 ExcelのROUND関数とは ROUND関数は、Ex