用 C 语言计算未来金额的现值

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何使用C语言计算未来金额的现值。该实验涵盖了基本步骤,包括读取财务参数(未来值、利率和时间周期),然后应用现值公式计算现值。本实验提供了带有代码示例的分步指南,以帮助你理解并在C语言中实现现值计算。

该实验演示了如何使用scanf()函数读取用户输入,将其存储为双精度浮点数,然后使用公式“现值(PV)= 未来值(FV)/ (1 + 利率)^时间”进行现值计算。计算出的现值随后会打印到控制台,以便你查看计算结果。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-435351{{"用 C 语言计算未来金额的现值"}} c/operators -.-> lab-435351{{"用 C 语言计算未来金额的现值"}} c/math_functions -.-> lab-435351{{"用 C 语言计算未来金额的现值"}} c/user_input -.-> lab-435351{{"用 C 语言计算未来金额的现值"}} c/output -.-> lab-435351{{"用 C 语言计算未来金额的现值"}} end

读取未来值、利率、时间

在这一步中,你将学习如何读取计算现值所需的重要财务参数:未来值、利率和时间周期。

首先,为现值计算创建一个新的C文件:

cd ~/project
nano present_value.c

现在,让我们编写读取输入值的代码:

#include <stdio.h>
#include <math.h>

int main() {
    double future_value, rate, time;

    printf("Enter Future Value: ");
    scanf("%lf", &future_value);

    printf("Enter Annual Interest Rate (in decimal): ");
    scanf("%lf", &rate);

    printf("Enter Time Period (in years): ");
    scanf("%lf", &time);

    printf("Inputs:\n");
    printf("Future Value: %.2f\n", future_value);
    printf("Interest Rate: %.2f%%\n", rate * 100);
    printf("Time Period: %.2f years\n", time);

    return 0;
}

编译程序:

gcc -o present_value present_value.c -lm

运行程序时的示例输出:

Enter Future Value: 1000
Enter Annual Interest Rate (in decimal): 0.05
Enter Time Period (in years): 3
Inputs:
Future Value: 1000.00
Interest Rate: 5.00%
Time Period: 3.00 years

这段代码演示了如何:

  • 使用scanf()读取用户输入的未来值、利率和时间周期
  • 将输入存储为双精度浮点数
  • 打印输入的值以确认输入正确

现值 = 终值 / (1 + 利率)^期数

在这一步中,你将使用财务公式“现值(PV)= 终值(FV)/ (1 + 利率)^期数”来实现现值计算。

修改之前的present_value.c文件以包含该计算:

nano ~/project/present_value.c

用现值计算更新代码:

#include <stdio.h>
#include <math.h>

int main() {
    double future_value, rate, time, present_value;

    printf("Enter Future Value: ");
    scanf("%lf", &future_value);

    printf("Enter Annual Interest Rate (in decimal): ");
    scanf("%lf", &rate);

    printf("Enter Time Period (in years): ");
    scanf("%lf", &time);

    // 计算现值
    present_value = future_value / pow((1 + rate), time);

    printf("\nCalculation Results:\n");
    printf("Future Value: %.2f\n", future_value);
    printf("Interest Rate: %.2f%%\n", rate * 100);
    printf("Time Period: %.2f years\n", time);
    printf("Present Value: %.2f\n", present_value);

    return 0;
}

编译并运行更新后的程序:

gcc -o present_value present_value.c -lm
./present_value

示例输出:

Enter Future Value: 1000
Enter Annual Interest Rate (in decimal): 0.05
Enter Time Period (in years): 3

Calculation Results:
Future Value: 1000.00
Interest Rate: 5.00%
Time Period: 3.00 years
Present Value: 862.07

这段代码的要点:

  • 使用<math.h>中的pow()函数计算(1 + 利率)^期数
  • 实现现值公式:PV = FV / (1 + 利率)^期数
  • 显示详细的计算结果

打印现值

在这一步中,你将通过添加格式化输出和错误处理来增强现值计算程序,以提升用户体验。

使用改进的格式和验证功能更新present_value.c文件:

nano ~/project/present_value.c

修改代码以包含更好的输出格式:

#include <stdio.h>
#include <math.h>

int main() {
    double future_value, rate, time, present_value;

    // 输入验证
    printf("现值计算器\n");
    printf("----------------------\n");

    printf("输入未来值(必须为正数):");
    if (scanf("%lf", &future_value)!= 1 || future_value <= 0) {
        printf("错误:无效的未来值。请输入一个正数。\n");
        return 1;
    }

    printf("输入年利率(以小数形式,例如5% 输入0.05):");
    if (scanf("%lf", &rate)!= 1 || rate < 0) {
        printf("错误:无效的利率。请输入一个非负数。\n");
        return 1;
    }

    printf("输入时间周期(以年为单位,必须为正数):");
    if (scanf("%lf", &time)!= 1 || time <= 0) {
        printf("错误:无效的时间周期。请输入一个正数。\n");
        return 1;
    }

    // 计算现值
    present_value = future_value / pow((1 + rate), time);

    // 格式化输出
    printf("\n--- 现值计算 ---\n");
    printf("未来值:     $%.2f\n", future_value);
    printf("年利率:      %.2f%%\n", rate * 100);
    printf("时间周期:      %.2f 年\n", time);
    printf("现值:    $%.2f\n", present_value);

    return 0;
}

编译并运行更新后的程序:

gcc -o present_value present_value.c -lm
./present_value

示例输出:

现值计算器
----------------------
输入未来值(必须为正数):1000
输入年利率(以小数形式,例如5% 输入0.05):0.05
输入时间周期(以年为单位,必须为正数):3

--- 现值计算 ---
未来值:     $1000.00
年利率:      5.00%
时间周期:      3.00 年
现值:    $862.07

主要改进点:

  • 添加了输入验证以防止无效输入
  • 通过清晰的标签增强了输出格式
  • 改进了用户输入的错误处理
  • 添加了描述性提示和计算总结

总结

在本实验中,你将学习如何读取计算现值所需的重要财务参数,包括未来值、利率和时间周期。然后,你将使用财务公式“现值(PV)= 未来值(FV)/ (1 + 利率)^期数”来实现现值计算。本实验演示了如何使用C语言编程提示用户输入、进行计算并显示计算得出的现值。