【发布时间】:2021-04-06 17:58:37
【问题描述】:
您好,我正在学习 C,我很困惑为什么这一行返回 -126.00 而不是 130.00
这里是源代码:
char course1(char course, float price){
if(course == 'E' || course == 'e') {
printf("You have taken PHP!\n");
price = 130.00;
return price; //returns -126.00
}
else
printf("Invalid!\n");
return 0;
}
int main() {
char course;
float totalCourse;
float y = 0;
scanf(" %c", &course);
totalCourse += course1(course, y);
printf("In main, the total is %.2f", totalCourse);
return 0;
}
当我运行代码并输入“E”时,C 返回 -126 而不是源代码中给出的 130。谁能解释一下为什么会这样?
【问题讨论】:
-
因为某种原因你返回
char。 -
另外
totalCourse未初始化 -
与您的问题无关:不要将
float用于货币价值。它不符合您在数钱时所期望的数学。使用double会稍微不那么糟糕,但仍然很糟糕。使用整数,并计算美分。
标签: c return-value function-definition