Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語の除算演算子とモジュロ演算子で数値を逆順に出力する方法


問題

Cプログラミングにおいて、入力された2桁の数値を、除算演算子とモジュロ(剰余)演算子を使って逆順に表示するにはどうすればよいでしょうか?

解決方法

これまでの記事では、文字列関数を使用する場合と使用しない場合の、文字列を反転する方法を扱ってきました。今回は、あらかじめ用意された関数に頼らずに、2桁の数値を反転させる方法を紹介します。

演算子を活用して数値を反転させる際の基本的なロジックは以下の通りです。

int firstno=number%10;  // 余り(一の位)を格納
int secondno=number/10; // 商(十の位)を格納

まず一の位の数値を表示し、続けて十の位の数値を表示することで、元の数値を反転させた結果が得られます。

たとえば「45」の場合、「45 % 10」は余りの「5」、「45 / 10」は商の「4」となります。この2つを並べて表示すれば「54」となり、反転が完了します。

プログラム1:2桁の数値を反転する

次の例では、2桁の数値をキーボードから入力し、除算演算子とモジュロ演算子を適用して数値を反転させています。

#include<stdio.h>
int main(){
    int number;
    printf("enter a number:");
    scanf("%4d",&number);
    int firstno=number%10;  // 余り(一の位)を格納
    int secondno=number/10; // 商(十の位)を格納
    printf("After reversing =%d%d\n",firstno,secondno);
    return 0;
}

実行結果

enter a number:45
After reversing =54

プログラム2:3桁の数値を反転する

同じ考え方は3桁の数値にも応用できます。百の位・十の位・一の位をそれぞれ取り出し、桁の重みを掛け直して組み合わせることで、反転した数値を求めています。

#include<stdio.h>
int main(){
    int number,num1,num2,num3,result;
    printf("enter a number:");
    scanf("%4d",&number);
    num1 = number / 100;        // 百の位を取得
    num2 = (number % 100) / 10; // 十の位を取得
    num3 = number % 10;         // 一の位を取得
    result = 100*num3 + 10*num2 + num1;
    printf("After reversing =%d\n",result);
    return 0;
}

実行結果

enter a number:479
After reversing =974

このように、除算演算子で商を求めることで上位の桁を、モジュロ演算子で余りを求めることで下位の桁を、それぞれ簡単に抽出できます。このテクニックは桁数が増えても応用できるので、ぜひマスターしておきましょう。

  1. C言語で単方向リンクリストを使って数値を逆順に表示する方法

    リンクリスト(連結リスト)とは リンクリストは動的メモリ割り当てを利用するデータ構造で、複数の「ノード」が連なった集合体です。各ノードはデータ部分とリンク部分(次のノードへのポインタ)の2つの要素で構成されています。 リンクリストの種類 C言語で扱われる主なリンクリストには、以下の4種類があります。 単方向リンクリスト 双方向リンクリスト 循環単方向リンクリスト 循環双方向リンクリスト 単方向リンクリストの構造 下の図は、単方向リンクリストの構造を示したものです。各ノードがデータと次ノードへのポインタを持ち、末尾ノードのポインタはNULLを指します。 数値を逆順に表示するCプログラム 以

  2. ExcelのROUND関数で数値を丸める方法|四捨五入をわかりやすく解説

    Excelで資料を見やすく整えたいとき、数値を小数点以下や整数単位で丸めると、ぐっと読みやすくなります。数値を丸めるということは、重要度の低い桁を取り除くことを意味します。その結果、必要な精度を保ちながら、より見栄えの良い値に仕上げることができます。 丸め処理は、概算を示したり、数値を扱いやすくしたりする目的でよく使われます。たとえば、割引率を計算して「17.3587563」という数値が出た場合、小数第1位で丸めれば「17.4%」となり、はるかに見やすくなります。この記事では、ROUND関数を使って数値を丸める方法を詳しくご紹介します。 ExcelのROUND関数とは ROUND関数は、Ex