0

課題で悩んでいます。私はそれを理解しようとして最後の時間を費やしました。個人的には構文エラーは見られません。

これがエラーです

エラー 1 エラー C2440: '関数': 'double [49]' から 'double' に変換できません

これは、参照している行です。

std_report(student_id, upexp_m, upexp_y, upinc_m, upinc_y, num);

宣言を使用して:

int student_id[MAX];
double upexp_m[MAX], upexp_y[MAX], upinc_m[MAX], upinc_y[MAX];

void std_report(int student_id[], double exp_m[], double exp_[], double income_m, double income_y, int size);

そして実装:

void std_report(int student_id[], double exp_m[], double exp_y[], double income_m[], double income_y[], int size) {
  printf("\n\n<STUDENT NAME> Budget Report (Student ID:%d\n", student_id[size]);
  printf("~~~~~~~~~~~~~~~~~~~~~\n");
  printf("Expenses\n~~~~~~~~\n\n");
  printf("%45c MONTHLY %6c ANNUALLY\n", ' ', ' ');
  printf("Total Expenses: %28c $ %.2lf %5c $ %.2lf\n", ' ', exp_m[size], ' ', exp_y[size]);
  printf("Total Income: %30c $ %.2lf %5c $ %.2lf\n", ' ',income_m[size], ' ',income_y[size]);
  printf("Total Savings Available for your goals: %4c $ %.2lf %6c $ %.2lf\n\n\n", ' ', income_m[size]-exp_m[size], ' ', income_y[size]-exp_y[size]);
  return;
}

他に貼り付けられるものがあればお知らせください。完全に困惑しています。どんな助けでも大歓迎です。

解決

[]試作品に欠品がありました。

4

1 に答える 1

1

doubleこれにアプローチする分析的な方法:エラーを見てください。コンパイラがs( )の配列である何かdouble[49]を1つの通常のに変換しようとしていることを明確に示していますdouble

関数を見ると、std_report関連するすべての変数を配列の添え字で使用しているため、エラーが発生することはありません。コンパイラは、を呼び出した行でエラーが発生したことも示しますstd_report。引数として渡す変数は正しい型であるため、コンパイラーは、パラメーターの1つが異なる型であると想定している必要があります。

std_reportしたがって、実装とすべての宣言である、の目的のパラメータリストをコンパイラに伝達するすべてのポイントをチェックする必要があります。

于 2012-08-04T22:34:15.850 に答える