我一直在尝试用C++做一些基本的函数调用和函数,并且在单利计算中得到错误的输出为0。需要帮助。
using namespace std;
int SI(int principle, int rate, int time){
int result = (principle * rate * time) / 100;
cout<<result;
}
int main() {
//Write your code here
int principle, rate, time, simple_interest;
cin>> principle>> rate>> time;
simple_interest=SI(principle,rate,time);
return 0;
}
type here
未找到期望值
你有两个问题,一是小问题,一是大问题。
小问题会给你错误的结果,这是因为表达式
(principle * rate * time) / 100
中的所有值都是整数,并且结果是整数,然后你将其存储在整数变量中。如果您想要小数,则需要使用浮点值和变量:
double result = (principle * rate * time) / 100.0;
唯一的变化是将结果存储在浮点变量中,并将整数
100
更改为double
值100.0
。
那么对于主要问题,这将导致未定义的行为...您声明函数返回一个值,但您从不这样做。
要从函数返回值,您需要使用显式
return
语句。
您似乎还犯了一个在初学者中相当常见的错误,即您将输出
std::cout
与实际返回的值混淆了。
声明
cout<<result;
会将
result
的值写入标准输出流,但不会返回任何内容。
我建议你不要在函数中输出结果,只返回结果,然后在
main
函数中进行输出。
把它们放在一起,你的代码可能是这样的:
#include <iostream>
double calculate_interest(int principle, int rate, int time)
{
return (principle * rate * time) / 100.0;
}
int main()
{
int principle;
int rate;
int time;
std::cout << "Input principle: ";
std::cin >> principle;
std::cout << "Input rate: ";
std::cin >> rate;
std::cout << "Input time: ";
std::cin >> time;
std::cout << "The interest is "
<< calculate_interest(principle, rate, time) << "%\n";
}
根据您的要求,变量
principle
、rate
和 time
或许也应该是 double
类型。