- 締切済み
関数について
協力お願いします。 2問あります 1問目です。 西暦年yearを引数として受け取り, 閏年かどうかの判定結果を戻り値として返す関数leap_year()を作成せよ. ただし,leap_year()は,閏年の場合は1を返し, そうでない場合は0を戻り値として返すものとする. 提出するプログラムは,関数leap_year()だけでなく, メイン関数main()も含む下記プログラムを完成させる形で作成する。 #include <stdio.h> /* ここに関数leap_year()のプロトタイプ宣言を記述する */ int main() { int i, year[3]; for (i=0; i<3; i++) { printf("西暦年を入力してください"); scanf("%d", &year[i]); if (leap_year(year[i]) == 1) { printf("閏年です.\n"); } else { printf("閏年ではありません.\n"); } } } /* ここに関数leap_year()を定義する */ 2問目です。 mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.プログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述すること。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
2問目は回答が出ているようなので、1問目の参考例を書いておきます。 #include <time.h> _Bool leap_year(int year) { struct tm t = { .tm_year = -1900 + year, .tm_mon = -1 + 2, .tm_mday = 29 }; if (mktime(&t) == (time_t)-1) return 0; return t.tm_mday == 29; }
- yama1718
- ベストアンサー率41% (670/1618)
2問目だけね C言語には累乗のpow関数があるのに、それを使わず自作するという事ですね。 http://oku.edu.mie-u.ac.jp/~okumura/algo/ ここのソース "algo.lzh" の中の "power.c" このファイルがソースです。
- asuncion
- ベストアンサー率33% (2127/6290)
閏年の定義(西暦が4で割り切れて100で割り切れない、あるいは400で割り切れる)に 従って… int leap_year(int y) { return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)); }