我的作业有问题。我花了最后一小时试图搞清楚。我个人没有看到任何语法错误。
这是错误
错误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;
}
如果还有什么我可以粘贴让我知道,我完全难过了。任何帮助将不胜感激。
原型中缺少[]
。
答案 0 :(得分:1)
解决此问题的分析方法:查看错误,它清楚地表明您的编译器正在尝试将double
s(double[49]
)数组转换为普通{{1} }}
如果我们查看你的double
函数,你正在使用带有数组下标的所有相关变量,所以错误不在那里,你的编译器也会指出错误发生在你调用的行{{1 }}。因为,作为参数传递的变量具有正确的类型,编译器必须假设其中一个参数具有不同的类型。
因此,我们必须检查与编译器通信的所有点std_report
所需的参数列表,即实现和所有声明。< / p>