No.4ベストアンサー
- 回答日時:
No.2です。
一応手順を示しておきます。
秒数 = C
とするとき、
C / 3600 = h時間を求められます。
(3600秒は1時間)
C / 3600 の余りが残りの秒数です。
C - (C / 3600) * 3600 差を求めることで余りを出します。
あとは、この秒数を分と秒に分けます。
s = C - (C / 3600) * 3600 とすると
s / 60 = m分が求められます。
(1分は60秒)
s / 60 の余りが変換後の秒数部分なので、差を求めて余りを得ます。
s - (s / 60) * 60 = 秒数部分の、s秒です。
入力数値 C が、3725(秒)だったとします。
※データが整数型なので割り算はすべて切捨て整数になります。
3725 / 3600 = 1時間
余りが秒なので
3725 - (3725 / 3600) * 3600 = 3725 - 1 * 3600 = 125
つまり、1時間125秒です。
さらに、125秒を分・秒にするので
125 / 60 = 2分
余りが最終的な秒なので
125 - (125 / 60) * 60 = 125 - 2 * 60 = 5
1時間2分5秒となります。
尚、A ÷ B の余りを説明上わかりやすく、
A - (A / B) * B としていますが
C言語ではご存知、A % B でも求められます。
No.6
- 回答日時:
<訂正>
【フローチャートその1】
STRAT(左右が弧である長方形図内に書く)
int n(長方形図内に左の4つを書く)
int h
int m
int s
n 入力(平行四辺形図内に書く)
jiRimbyo(n,[h],[m],[s])(左右二重線の長方形図に書く)
n 出力(長方形図内に左の4つを書く)
h 出力
m 出力
s 出力
END(左右が弧である長方形図内に書く)
【フローチャートその2】
jiRimbyo(左右が弧である長方形図内に書く)
n / 3600 → [h](平行四辺形図内に左3つを書く)
(n MOD 3600) / 60 → [m]
(n MOD 3600) MOD 60 → [s]
return(左右が弧である長方形図内に書く)
※[?]は値のアドレスを示します。
No.5
- 回答日時:
No.4です。
リストとフローチャートを以下に載せますので
参考になさって下さい。
void jiRimbyo(int n,int* h,int* m,int* s)
{
*h = n / 3600;
*m = (n % 3600) / 60;
*s = (n % 3600) % 60;
return;
}
int main(void)
{
int n,h,m,s;
printf("秒数?");
scanf("%d",&C);
jiRimbyo(n);
printf("\n%d=%d時間%d分%d秒\n",n,h,m,s);
return 0;
}
【フローチャートその1】
STRAT(左右が弧である長方形図内に書く)
int n(長方形図内に左の4つを書く)
int h
int m
int s
0→C(平行四辺形図内に書く)
jiRimbyo(n,[h],[m],[s])(左右二重線の長方形図に書く)
n 出力(長方形図内に左の4つを書く)
h 出力
m 出力
s 出力
END(左右が弧である長方形図内に書く)
【フローチャートその2】
jiRimbyo(左右が弧である長方形図内に書く)
n / 3600 → [h](平行四辺形図内に左3つを書く)
(n % 3600) / 60 → [m]
(n % 3600) % 60 → [s]
return(左右が弧である長方形図内に書く)
※[?]は値のアドレスを示します。
No.3
- 回答日時:
>ちなみに、与えられた値を時分秒に変換する部分は関数でお願いします
課題のにおいがプンプンしますね。
本当に大学1年生?
秒を時分秒に直す、なんてのは小学生でもできる問題だと思うのですが。
もっとブレイクダウンして質問しようよ。
・秒を時分秒に変換するアルゴリズムがわからない(小学生の問題だけど)
・数値(秒)を入力してプログラムで受け取る方法がわからない
・計算はできるけれども、表示の方法がわからない
「参考書など」とは、具体的に何を参考にされているのでしょうか?
#1さんの問いかけに対して、
>恥ずかしながら全く分かりません。
と答えるあたり、自分で少しでもなんとかしようという意気込みが全く伝わってこんのですが。
>学校があと少しで春休みになるので、基礎から勉強してみます。
勉強してから質問しましょう。失礼ながら、門前払いレベルです。
ご回答ありがとうございます。
計算は分かりますが、どのように入力していいかが分かりません。
参考書は、学校で買ったC言語ビギナー偏というものと、図書館でかりている本です。
勉強します。
No.2
- 回答日時:
▽まずソースから。
#include <stdio.h>
int main(void)
{
int C,h,m,s; ・・・ 1
printf("秒数?"); ・・・ 2
scanf("%d",&C); ・・・ 3
if (C <= 0){ ・・・ 4
printf("有効な値ではありません\n");
return 0;
}
s - = (m = (s = (C - (h = C / 3600) * 3600)) / 60) * 60; ・・・ 5
printf("\n%d秒=%d時間%d分%d秒\n",C,h,m,s); ・・・ 6
return 0; ・・・ 7
}
▽【説明】
(1)
C = 入力秒数 / h = 時間 / m = 分 / s = 秒
(2,3,4)
秒数 C を入力して、(C > 0秒)文字列や負数はエラーとする
(5)
s - = (m = (s = (C - (h = C / 3600) * 3600)) / 60) * 60
は以下に展開します。
h = C/3600 ・・・ 時間
s = (C - (h = C / 3600) * 3600)
・・・ 分も秒とした時の総秒数
m = (s = (C - (h = C / 3600) * 3600)) / 60
・・・ 秒から分を抽出
s - = (m = (s = (C - (h = C / 3600) * 3600)) / 60) * 60
・・・ 先程の秒数の差を求めることで残りの秒数桁を算出
こういうことでよろしいのでしょうか…?
ご回答ありがとうございます。せっかく回答していただいたのですが、
C秒単位の数値をコンソールタイプから入力して、その値を時分秒に変換して画面に表示ではなく、秒単位の数値をコンソールタイプから入力して、その値を時分秒に変換して画面に表示の間違いでした。申し訳ありません。大変、お手数お掛けしますがもう一度ご返事いただけますか?
ちなみにフローチャートも提出しないといけないのですが、例だと
START→秒を入力n→関数jiRimbyo(n)→n,時,分,秒の表示→stop
です。この場合のソースを教えていただいたほがありがたいです。
何度も申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
C言語 エラーの原因がわからな...
-
C++でvectorにテキストファイル...
-
実数の整数部,小数部の取得
-
C言語
-
PowerShellがうまくいかない
-
int型の変数値をバイト列として...
-
「{ } で囲むだけ」は正しい?
-
if と配列の組み合わせ
-
【C++】関数ポインタの使い方
-
エラー 添字が付けられた値が、...
-
VB.NETからC++のdll連携(double)
-
ColorをRGBで指定する方法
-
[C言語] 関数を利用する計算
-
#define _CRT_SECURE_NO_WARNIN...
-
152+483×769 = 967×384+251 ...
-
ファイルから読みこむ方法
-
構造体にたいして、ビット演算...
-
#include <stdio.h> int main(v...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
AtCoderABC135の問題Cについて
-
C言語 エラーの原因がわからな...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
ラップ関数とはどんなものですか?
-
if と配列の組み合わせ
-
return 1L
-
read関数をノンブロッキングで...
-
(int *)の意味
-
std::set<int> で、ある値が何...
-
Win32APIで作るコンボボックス...
-
C++でvectorにテキストファイル...
-
「{ } で囲むだけ」は正しい?
-
足して100になるような乱数のア...
-
Arduinoのプログラムにエラーが...
-
課題でつまってます・・・
おすすめ情報