曜日の入力データからその月日をすべて表示するプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
trmsmlk

曜日の入力データからその月日をすべて表示するプログラム

#1

投稿記事 by trmsmlk » 12年前

C言語 初心者です。課題のヒントをください。

曜日の入力データからその月日をすべて表示するプログラムをつくりたいです。(2013年)

実行結果↓


曜日を入力してください(1:日 - 7:土 ): 7

土曜日の月日は:
1月:5,12,19,26
2月:2,9,16,23
3月:2,9,16,23,30
4月:6,13,20,27
5月:4,11,18,25
6月:1,8,15,22,29
7月:6,13,20,27
8月:3,10,17,24,31
9月:7,14,21,28
10月:5,12,19,26
11月:2,9,16,23,30
12月:7,14,21,28



自分なりにやってみたのですが、月日の表示がされず・・・
改善すべき点を教えてください。よろしくお願いします。

#include <stdio.h>
main()
{
int i,d,mon;
int ndays_mon[]={31,28,31,30,31,30,31,31,30,31,30,31};
const char* snum_mon[]={"1","2","3","4","5","6","7","8","9","10","11","12"};
const char* sweek[]={"","日","月","火","水","木","金","土"};

printf("曜日を入力してください(1:日 - 7:土 ): ");
scanf("%d", &d);
printf("%s曜日の月日は:\n", sweek[d]);
d = ((d+3) % 7) + 1;

d -= 3;
mon = -1;

for(i=1;i<=mon;i++){
if (d <= 0) {
if (++mon >= 12) break;
printf("%s月:",snum_mon[mon]);
d += 3;
}

d += 3;
if (d <= ndays_mon[mon]) printf(",");
else {
printf("\n");
d -= ndays_mon[mon] + 3;
}
}
}

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 曜日の入力データからその月日をすべて表示するプログラム

#2

投稿記事 by みけCAT » 12年前

まずコードはcodeタグで囲んでください。

コード:

mon = -1;
for(i=1;i<=mon;i++){
このfor文の中身は全く実行されませんね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
バグ
記事: 130
登録日時: 15年前
住所: 愛媛県
連絡を取る:

Re: 曜日の入力データからその月日をすべて表示するプログラム

#3

投稿記事 by バグ » 12年前

ほぼ同じ質問が別のサイトにありました。日付は2年ほど前になってますが・・・

http://detail.chiebukuro.yahoo.co.jp/qa ... 1352165553

non
記事: 1097
登録日時: 14年前

Re: 曜日の入力データからその月日をすべて表示するプログラム

#4

投稿記事 by non » 12年前

あきらかに、そのヒントに書かれていることを並べただけですね。
しかも、7をすべて3に変えた意味がわからない。
もっと、よくヒントを読みましょう。
non

閉鎖

“C言語何でも質問掲示板” へ戻る