[解決済み】 error: too few arguments to function `printDay' (C言語)
2022-01-26 07:01:29
質問
質問
私はC言語のかなり初心者なのですが、コンパイル(GCC)しようとするとこんなエラーが出ます。
error: 関数 `printDay' への引数が少なすぎる。
私の疑問は
- どのような意味があるのですか?
- どうすれば直せますか?
P.S. これは私の完全なコードではなく、私が直面しているこのエラーだけです。 ありがとうございました。
コード
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#define MAX_DAYS 31
#define MIN_DAYS 1
#define MAX_MONTHS 12
#define MIN_MONTHS 1
enum monthsOfYear
{
jan = 1,
feb,
mar,
apr,
may,
jun,
jul,
aug,
sep,
oct,
nov,
dec
};
enum daysOfWeek
{
sun = 1,
mon,
tue,
wed,
thu,
fri,
sat
};
int input();
void check(int month, int day);
void printDay(int month, int day, int firstDay);
int main()
{
printf("Hello! Welcome to the day calculator!\n");
printDay(input());
return (0);
}
/*this function takes the input from the user
input: none
output: the first day
*/
int input()
{
enum daysOfWeek day = 0;
enum monthsOfYear month = 0;
int firstDay = 0;
printf("Enter month to check: (1-jan, 2-feb, etc) ");
scanf("%d", &month);
printf("Enter day to check: ");
scanf("%d", &day);
check(month,day);
printf("Enter the weekday of the 1st of the month: (1-Sunday, 2-Monday, etc) ");
scanf("%d", &firstDay);
return firstDay;
}
/*
this function checks the validity of the input
input: day, month
output: none
*/
void check(int month, int day)
{
if(month > MAX_MONTHS || month < MIN_MONTHS && day > MAX_DAYS || day < MIN_DAYS)
{
printf("Invalid input, try again\n");
input();
}
if (month == feb && day > 28)
{
printf("Invalid input, try again\n");
input();
}
if (month == jan && day > 31)
{
printf("Invalid input, try again\n");
input();
}
}
void printDay(int month, int day, int firstDay)
{
int date = 0;
date = day - firstDay;
switch(day)
{
case sun:
printf("%d.%d will be a Sunday", day, month);
break;
default:
break;
}
}
解決方法は?
<ブロッククオート- どういう意味ですか?
"です。
error: 関数 'printDay' への引数が少なすぎます。
に間違った数の引数を渡していることを意味します。
printDay
をここで呼び出すと
printDay(input());
引数を1つ渡しているのに、その宣言は
printDay
は、3つの引数を取ることを示しています。
void printDay(int month, int day, int firstDay);
<ブロッククオート
- どうすれば直せますか?
正しい数の引数を渡すことで、修正することができます。
int month = ...;
int day = ...;
int firstDay = ...;
printDay(month, day, firstDay);
関連
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み] Rが解決できない - Androidエラー
-
[解決済み] C言語とC++の両方で有効なコードを、それぞれの言語でコンパイルすると、異なる動作になることがありますか?
-
[解決済み】C言語の関数ポインタはどのように機能するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】strcmpが機能しない
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】cudamalloc()の使用。) なぜダブルポインタなのか?
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?