プロが教える店舗&オフィスのセキュリティ対策術

c言語の質問です。
ある月のカレンダーを作る際に、その月の日数とその月の1日の曜日を入力すればできるプログラムをおしえてほしいです!!
ただし日=0,月=1,火=2.,...のように曜日は数字で表します
どなたか教えてください!!

A 回答 (3件)

#include <stdio.h>


#include <stdlib.h>

int main(int argc, char** argv) {
 int i, j = 1, days[42];
 if (argc != 3) { goto end; }
 for (i = 0; i < 42; i++) {
  if (i < atoi(argv[2])) {
   days[i] = -1;
  } else if (i < atoi(argv[1]) + atoi(argv[2])) {
   days[i] = j;
   j++;
  } else {
   days[i] = -1;
  }
 }
 for (i = 0; i < 42; i++) {
  if (days[i] == -1) {
   printf(" ");
  } else if (i % 7 == 0) {
   printf ("\n");
   if (i < atoi(argv[1]) + atoi(argv[2])) {
    printf (" %2d ", days[i]);
   }
  } else {
   printf (" %2d ", days[i]);
  }
 }
 printf("\n");
end:
 return 0;
}
    • good
    • 0

曜日は7つ、日数は28~31の4つ全部で28種類しか無いのだから全部作っておいて指定されたものを引っ張ってくれば出来ますね。

    • good
    • 0

曜日は7種類しかないので0からスタートして6になったら次は0に戻ればよいだけのことでしょう。


C言語に限らずループ処理の中で最後(または最初)での曜日用カウンターのインクリメントと、if文での同カウンターの値の判定(と0のセット)があればよいだけかと。

C言語でどのように書くかを考える前に、日本語で「こういう手順で処理すれば希望することが出来る」という手順を考えられていますか?
それが出来ているならその日本語で出来ている手順を希望するプログラミング言語に翻訳すればよいだけです。
まぁ、「だけ」と言ってもそこでは使用するプログラミング言語の言語仕様に沿った日本語の時には無かった記述部分が入ることにはなりますが。

何らかのチャート図をご存知でしたらそれで記述されればよいですし、無い場合は箇条書きなどでもよいでしょう。

参考まで。

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています