C言語プログラム:日数を月と日に変換する方法を解説
ユーザーが総日数を入力すると、その日数を「月数」と「翌月に残る日数(余り)」に変換するプログラムを作成します。
日数を月数に変換するための計算式は以下の通りです。
月数 = 日数 ÷ 30
また、翌月に残る日数を求めるためのロジックは以下の通りです。
残りの日数 = 日数 % 30(30で割った余り)
アルゴリズム
日数を月数と日数に変換するためのアルゴリズムは以下の通りです。
ステップ1: 開始
ステップ2: 月数と日数の変数を宣言する
ステップ3: 総日数を入力する
ステップ4: 月数を計算する
months = days / 30
ステップ5: 残りの日数を計算する
days = days % 30
ステップ6: 月数を出力する
ステップ7: 日数を出力する
プログラム
以下は、日数を月数と日数に変換するC言語プログラムです。
#include<stdio.h>
main (){
int months, days ;
printf("Enter days\n") ;
scanf("%d", &days) ;
months = days / 30 ;
days = days % 30 ;
printf("Months = %d Days = %d", months, days) ;
}
実行結果
上記のプログラムを実行すると、以下のような結果が出力されます。
Enter days
456
Months = 15 Days = 6
Enter days
145
Months = 4 Days = 25
例えば、456日を入力した場合、456 ÷ 30 = 15 となるため「15か月」、余りの 456 % 30 = 6 となるため「6日」と表示されます。このように、整数除算(/)で月数を、剰余演算(%)で残りの日数を求めることで、簡単に日数を月と日に変換することができます。
-
C言語で中実・中空の菱形(ひし形)パターンを出力するプログラム
プログラムの概要 本記事では、C言語を使用して、下図のような中実(塗りつぶし)の菱形と中空(外枠のみ)の菱形の星形パターンをコンソールに出力する方法を解説します。 アルゴリズム 中空の菱形(Hollow Rhombus)の場合 1. ユーザーから中空菱形の行数を入力してもらう 2. 入力された行数と同じ行数を持つ中空の菱形を作成する 3. 1行目は、行数と同じ個数のアスタリスク(*)をすべて出力する 4. 2行目以降は、各行の先頭と末尾のみ「*」を出力し、その間は空白のままにする 5. 最終行に達するまで手順4を繰り返す 6. 最終行は、行数と同じ個数の「*」をすべて出力する 中実の菱形
-
数値を英語の単語に変換するCプログラムの書き方
数値で構成された文字列が与えられたとき、その数値を英語の単語(スペル表記)へ変換するのが本記事の課題です。例えば、入力が「361」であれば、出力は「Three hundred sixty one」となるようにします。この問題を解くためには、一の位・十の位・百の位・千の位など、それぞれの数字がどの桁に位置しているのかを意識することが重要です。なお、今回紹介するコードは最大4桁、つまり0から9999までの数値に対応しています。したがって、入力は0〜9999の範囲である必要があります。例として「1,111」を考えてみましょう。各桁は以下のように対応します。千の位:1(one thousand)百の位