- 締切済み
C言語/プログラミング
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- AsarKingChang
- ベストアンサー率46% (3467/7474)
回答No.2
おまけ printf("[計算結果]%d秒 = %d時間%02d分%02d秒\n", sec,h,m,s); の方が綺麗かと。。 分と秒は、0~59なので、これを00~59と先頭を0で埋めた2桁の数字 とした方が、時計っぽい?感じにはなるでしょう。 同じように、n時間は、0~23なので、同じく%02dにしつつ つまり60*60*24で割った値を「day」として さらに増やせば、完璧でしょうね。 ↑これを求めるなら d=sec/(60*60*24); h=(sec/(60*60))%24; で、パーフェクト! 後は、プログラムを楽しんでください!。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
回答No.1
例えば、秒が100秒だとします。 それを1分40秒にするなら、 s/60ではないです。 s%60 これは、60で割ったあまり(つまり40) という感じで、あまりを計上すれば解決です。 printf("[計算結果]%d秒 = %d時間%d分%d秒\n", s, ans1, ans2); %が4回ありますが、パラメタが3回なので、 実在しないans2のスタックの次が参照されてしまっています。 なので、 h=sec/3600; これはOK m=(sec/60)%60; ここでオーバーフローを考慮 s=sec%60; ここでオーバーフローを考慮 printf("[計算結果]%d秒 = %d時間%d分%d秒\n", sec,h,m,s); でどうですか? hやmやsは、業界の標準的な変数名です。 h=hour m=min s=secの略で、これが並ぶ時「時刻だね」と 他の人がわかるようにするために、この名称が多く使われます。
お礼
ありがとうございました。助かりました。