功能错误:double []加倍?

时间:2012-08-04 22:23:14

标签: c compiler-errors

我的作业有问题。我花了最后一小时试图搞清楚。我个人没有看到任何语法错误。

这是错误

  

错误1错误C2440:'function':无法从'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;
}

如果还有什么我可以粘贴让我知道,我完全难过了。任何帮助将不胜感激。

解决方案

原型中缺少[]

1 个答案:

答案 0 :(得分:1)

解决此问题的分析方法:查看错误,它清楚地表明您的编译器正在尝试将double s(double[49])数组转换为普通{{1} }}

如果我们查看你的double函数,你正在使用带有数组下标的所有相关变量,所以错误不在那里,你的编译器也会指出错误发生在你调用的行{{1 }}。因为,作为参数传递的变量具有正确的类型,编译器必须假设其中一个参数具有不同的类型。

因此,我们必须检查与编译器通信的所有点std_report所需的参数列表,即实现和所有声明。< / p>