ページ 11

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

Posted: 2013年1月30日(水) 20:38
by trmsmlk
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;
}
}
}

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

Posted: 2013年1月30日(水) 21:11
by みけCAT
まずコードはcodeタグで囲んでください。

コード:

mon = -1;
for(i=1;i<=mon;i++){
このfor文の中身は全く実行されませんね。

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

Posted: 2013年1月30日(水) 21:20
by バグ
ほぼ同じ質問が別のサイトにありました。日付は2年ほど前になってますが・・・

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

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

Posted: 2013年1月30日(水) 21:43
by non
あきらかに、そのヒントに書かれていることを並べただけですね。
しかも、7をすべて3に変えた意味がわからない。
もっと、よくヒントを読みましょう。