C言語始めたてで先生にこれ進められて京大の問題らしいのですけど、なかなか進みません、、、
土曜日で改行する方法
月初めの1日の曜日を設定した後にそれ以前の曜日を空白で埋める方法
がずっと悩んでます
どなたか教えてください!!!
特定の月のカレンダーを表示させたい。その月の1日の曜日と、日数を入力さ せて、for文を使用して下記のようなカレンダーを表示させたい。 そのようなプログラムをfor8.cとして書き、数字の 桁が揃っている点も含めて正しく表示されることを確認せよ。
補足:曜日を指定する数字が0から6までの数字でない場合、 また月の日数が28から31までの数字でない場合に、例外処理するのが 望ましいが、可能であれば対応するように。
(実行結果)
% ./a.out
カレンダーを表示させます
表示させたい月は何曜日から始まりますか?次の数字で答えてください
0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土
5
表示させたい月は何日ありますか?数字を入力してください
28
日 月 火 水 木 金 土
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
%
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
で書いた筈なんだけど、しょーがねぇなぁ。
全然C言語分かってねぇ、って事じゃねぇか。
// ここから
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char s[3];
int i, j = 1, m, n, days[42];
puts("カレンダーを表示させます");
puts("表示させたい月は何曜日から始まりますか?次の数字で答えてください");
puts("0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土");
scanf("%2s%*[^\n]%*c", s);
m = atoi(s);
if (m < 0 || m > 6) {goto end;}
puts("表示させたい月は何日ありますか?数字を入力してください");
scanf("%2s%*[^\n]%*c", s);
n = atoi(s);
if (n < 28 || n > 31) {goto end;}
for (i = 0; i < 42; i++) {
if (i < m) {
days[i] = -1;
} else if (i < m + n) {
days[i] = j;
j++;
} else {
days[i] = -1;
}
}
puts(" 日 月 火 水 木 金 土");
for (i = 0; i < 42; i++) {
if (days[i] == -1) {
printf(" ");
} else if (i % 7 == 0) {
printf ("\n");
if (i < m + n) {
printf (" %2d ", days[i]);
}
} else {
printf (" %2d ", days[i]);
}
}
printf("\n");
end:
return 0;
}
// ここまで
とんだ二度手間だ。
No.3
- 回答日時:
金曜日 1 日から木曜日 28 日を表示する、ではなく、
日曜日 -4 日から週ごとに 5 行分を表示と考えましょう。
[イメージ]
日 月 火 水 木 金 土
-4 -3 -2 -1 +0 +1 +2
...
24 25 26 27 28 29 30
1 から 28 の日付は数値を表示し、
それ以外の日付は空白を表示すれば、
カレンダーの体裁になります。
ちなみに条件によっては 6 行分になることもあるので、
表示行数は決め打ちではなく計算して決めましょう。
No.2
- 回答日時:
>土曜日で改行する方法
7で割った余りが6の時に改行
>月初めの1日の曜日を設定した後にそれ以前の曜日を空白で埋める方法
先月分は曜日の数と同じだからその分空白で埋める
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/04/21 08:59
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- Excel(エクセル) Excel2019のデータ入力に便利な関数について 4 2023/07/06 05:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
6月の第2 第4火曜日は何日...
-
月の第一週とは
-
今週とは何曜日から何曜日まで...
-
エクセルで毎月第2週日の水曜日...
-
よくある 『 第○(1・2・3・4・...
-
毎○曜日って、使いますか?
-
土曜日の26時って何曜日の何時...
-
VBA。複数のChangeイベントをま...
-
曜日を求めるプログラムはどう...
-
カレンダープログラム、曜日の...
-
燃えるゴミの日は何曜日ですか?
-
for a week tomorrowはどういう...
-
日付から曜日を求めたい
-
[Excel] ある日の曜日が当月の"...
-
週の始まりは?
-
【機械式腕時計のメカニズムの...
-
HTTPヘッダの大きさ
-
アンケートなどの1日1回の投...
-
VBでcgiを動作させるには
-
jcode.plが読み込めない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
6月の第2 第4火曜日は何日...
-
毎○曜日って、使いますか?
-
週2回のペースって だいたい何...
-
燃えるゴミの日は何曜日ですか?
-
[Excel] ある日の曜日が当月の"...
-
【機械式腕時計のメカニズムの...
-
VBA。複数のChangeイベントをま...
-
Excelで第一〇曜日を求める方法...
-
日本語問題 昨日は何曜日ですか...
-
毎週同じ曜日にラブホに行くと...
-
曜日のなぞ
-
c言語の質問です。 ある月のカ...
-
ユーザー定義の(aaa)
-
今週とは何曜日から何曜日まで...
-
カレンダープログラム、曜日の...
-
曜日と曜の使い分けがわかりま...
-
西暦・月からカレンダーを表示
おすすめ情報