年月日を入力してそのようなものがあるかどうかを判定するプログラムを作りたいです。以下のようなソースプログラムを考えたのですがエラーが出てしまいます。修正点を教えてください。

補足

関数を作りたいので、以下のように直したのですが、hantei が上手く機能せず全て「存在しない。」になってしまいます。どこを直せばよいのでしょうか。 #include <stdio.h> int a ( int y, int m, int d) { int x[12] = { 31,28,31,30,31,30,31,31,30,31,30,31}; int hantei; if (y >=0 && m>=1 && m<=12 && d>=1 && d<=x[m - 1]){ hantei = 1;} else hantei = 0; return 0; } int main(void) { int y,m,d=0; int hantei; printf("西暦y年m月n日を入力してください。\n"); 略 printf("西暦%d年%d月%d日", y, m, d); if (hantei == 1) {printf("存在します。");} else {printf("存在しません。");} return 0; }

その他の回答(2件)

0

a(int y, int m, int d) == 1; 何がやりたい? 1.引数に型は不要。 2.==は等しいかの比較。 3.aの本体が無い。

0

#define _CRT_SECURE_NO_WARNINGS/*visual stdioの場合必要*/ #include <stdio.h> int main(void) { int y, m, d = 0; int hantei = 0; printf("西暦y年m月n日を入力してください。\n"); scanf("%d", &y); scanf("%d", &m); scanf("%d", &d); printf("西暦%d年%d月%d日", y, m, d); if ((y > 0) && (m >= 1) && (m <= 12) && (d >= 1)) { if (((m == 1) || (m == 3) || (m == 5) || (m == 7) || (m == 8) || (m == 10) || (m == 12)) && (d <= 31)) { hantei = 1; } else if (((m == 4) || (m == 6) || (m == 9) || (m == 11)) && (d <= 30)) { hantei = 1; } else if ((m == 2) && (d <= 28)) { hantei = 1; } else { hantei = 0; } } if (hantei == 1) { printf("存在します。"); } else { printf("存在しません。"); } return 0; } 質問者さんの意図通りのものかわかりませんが動作するようになりました。 質問があれば返信ください。

ご回答ありがとうございます。 引数、y、m、dを用いて存在を判定する関数を作りたいのですが、これで作れていることになるのですか?