c - 扫描仪不工作(C 代码)

标签 c

这是我的代码:

#include <stdio.h>

float calculateBalance(float payment, float balance, float rate);

int main(void){
    float loanAmount, interestRate, monthlyPayment;

    printf("Enter amount of loan:");
    scanf("%.2f", &loanAmount);

    printf("\nEnter interest rate:");
    scanf("%.1f", &interestRate);

    printf("\nEnter monthly payment:");
    scanf("%.2f", &monthlyPayment);

    loanAmount = calculateBalance(monthlyPayment, loanAmount, interestRate);
    printf("Balance remaining after first payment: %.2f\n", loanAmount);

    loanAmount = calculateBalance(monthlyPayment, loanAmount, interestRate);
    printf("Balance remaining after second payment: %.2f\n", loanAmount);

    loanAmount = calculateBalance(monthlyPayment, loanAmount, interestRate);
    printf("Balance remaining after third payment: %.2f\n", loanAmount);
}

float calculateBalance(float payment, float balance, float rate){
    return (balance-payment + balance*rate);
}

我正在尝试计算三笔付款后的余额;但是,当我尝试在终端中运行代码时,它不允许我输入任何内容,而只是读取随机数,然后计算三笔付款后的余额(我希望能够输入内容,但它不是允许我这样做)。我该如何解决这个问题?

最佳答案

问题出在 fmt 字符串本身。正如@T.C.在评论中说道

尝试使用

scanf("%f", &var);

相反。如果只有 2 个 dec 值,那么它只会读取该值。

关于c - 扫描仪不工作(C 代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23715347/

相关文章:

c - 信号量互斥锁防止死锁 - C 程序

c - fopen() 不适合串口吗?

c - 重新分配后矩阵第一个元素的问题

c - 从标准输入读取输入参数时的意外行为

c - 使用 select 读取和写入同一个套接字(TCP)

c - 快速创建随机数组

c++ - 如何控制或优化或删除或释放 UNION 中未使用的内存

c - C中的十六进制算术

c - OS X Tiger上的mprotect API

c - Tribonacci 数和时间/空间复杂度 - C