質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Q&A

解決済

2回答

3518閲覧

for文をつかったカレンダー c言語

yoshiteru21

総合スコア44

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

0グッド

0クリップ

投稿2019/04/12 06:31

編集2019/04/12 08:13

for文を使って画像のようなカレンダーを出力させるプログラムをつくりなさいという問題なのですが
下のコードまでは作り上げたのですがあとは何を入力すれば完成するのでしょうか?
頭がパンクしております。。。
イメージ説明

#include <stdio.h> int main(void){ int week, days, i; printf("カレンダーを表示させます\n"); printf("表示させたい月は何曜日から始まりますか?次の数字で答えてください\n"); printf("1:日,2:月,3:火,4:水,5:木,6:金,7:土\n"); scanf_s("%d", &week); printf("表示させたい月は何日ありますか?数字を入力してください\n"); scanf_s("%d", &days); printf(" 日 月 火 水 木 金 土\n"); int youbi; for (i = 1; i <= week - 1; i++){ printf(" "); } ; for (i = 1; i <= days; i++){ for (int j = 1; j <= 7; j++){ printf("%3d", i); i++; youbi = week + j; if (youbi == 8){ printf("\n"); } } printf("\n"); } return 0; } コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

for と if を使えということなら、

  1. 日曜日から月初の曜日の一つ前(前月最終日)までを空白表示する

 これは for 文で、1~(月初曜日-1)でループする
2. 今表示しようとする曜日を、変数に入れる(初期値は月初の曜日)
3. 1~月末日で for ループを作り、中で以下の処理を行う
3-1. 日を出力する
3-2. 曜日を一つずらす(変数の値を1増やす)
3-3. もし曜日が土曜日を超えていたら、曜日を日曜日にして、改行を出力する
4. 改行を出力して終了

という手順ですかねえ。

投稿2019/04/12 07:04

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshiteru21

2019/04/12 08:32

至極単純なコードであるのに難しく考えすぎていました。 一個一個順序を踏まえて作るということを教えていただきありがとうございます
tacsheaven

2019/04/12 08:49

ちなみにこれ、動くんですが、ある条件でだけ微妙に気になる動きをします。もともとの課題の条件には書いていないのであえてそのままにしていますが。 まあこれは宿題というか、パズルや謎かけの類いだとでも思ってください。
guest

0

先ほど同様の質問をされていたと思いますが、そこに参考にと載せていただいたコードを見ても一切わからないですか?

投稿2019/04/12 06:34

poniponiponiki

総合スコア98

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshiteru21

2019/04/12 06:35

for文、if文のみを使うとのお達しがありまして・・・
poniponiponiki

2019/04/12 06:38

前の質問で、 >課題として出されているのではなく、ネットで調べ、出てきたものを自分で解いているわけですが・・。 こちらの問題がさっぱりわからず、質問している状況です。 とおっしゃっているようですが、誰からのお達しがあったんでしょうか。。 また、参考に載せていただいたコードにはfor文もif文も書かれていたと思いますが、そこを見てもまったくわからないですか?
yoshiteru21

2019/04/12 06:44

ははー!参考にさせていただきますうう(´;ω;`)ウゥゥ
cateye

2019/04/12 06:53

>for文、if文のみを使う・・・・・って、ほかは一切ダメなのか@@?
cateye

2019/04/12 07:08 編集

c言語の文とは、”式にセミコロン( ; )がついたもの”です。分かっていますか? ・・・これで行くと、printf()もscanf()もreturnも・・・あと諸々も使えないんですよd^^
yoshiteru21

2019/04/12 07:13

私の文にはついているので大丈夫ですよね・・? え、大丈夫ですかね?
cateye

2019/04/12 07:22 編集

話が支離滅裂です。私の質問のfor()とif()以外の文について、“ほかは一切ダメ"に同意しながら、“私の文にはついているので大丈夫です”と言う・・・お達しの方はどう考えているのか、お教え願いたい。
poniponiponiki

2019/04/12 07:21

ひとまず、tachsheavenさんが手順というか、考え方を書いてくださっていますし、 もう一度考えてみてはいかがですか? そこで、何がまったくわからないのか絞っていただいたほうがよろしいかと。。 今のままだと、課題といてください!としか読めないです。
yoshiteru21

2019/04/12 07:22

なるほどですね! すみませんご丁寧にありがとうございます(-_-;)
poniponiponiki

2019/04/12 07:35

いえ、課題であれなんであれ、考えすぎると頭こんがらがりますから。 コードそのものを提示されるよりも、まずは手順を追って自分なりに書いてみると少しは整理されるかと思います。 他人任せの質問者だと思われると、マイナス評価が増えて質問に答えてくださる方も減ってしまうと思われますので、お疲れかとは思いますがもう少しだけがんばってみてください。
yoshiteru21

2019/04/12 08:34

難しく考えすぎていました。 無事解決しました。ご丁寧に教えていただき誠にありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問