我只是想用一个相对简单的公式来计算10年的金额。我可以输入所有变量,但我怀疑我对amount
做错了。
#include <stdio.h>
#include <math.h>
int main(){
double amount; /* amount on deposit */
double principal; /* what's the principal */
double rate; /* annual interest rate */
int year; /* year placeholder and no. of total years */
int yearNo;
printf("What is the principal? ");
scanf("%d", &principal);
printf("What is the rate (in decimal)? ");
scanf("%lf", &rate);
printf("How many years? ");
scanf("%d", &yearNo);
printf("%4s%21s\n", "Year", "Amount on deposit");
/* calculate the amount on deposit for each of ten years */
for (year = 1; year <= yearNo; year++ ){
amount = principal * pow(1.0 + rate, year);
printf("%4d%21.2f\n", year, amount);
}
return 0;
}
我是C的新手,但我正在读一本书中的例子。这本书“硬编码”这些数字,我试图学习如何使用用户的输入来计算数据。
我是否正确地认为这是我的amount
或我最后使用%f
如何引用它?
感谢您的任何想法:)
答案 0 :(得分:2)
使用scanf()
系列函数,%d
适用于int
,%lf
适用于double
。
要做的第一件事是确保您的编译器已启用警告。有些编译器(GCC,Clang)会报告格式错误。
接下来要做的是打印您阅读的值。当你看到垃圾出来时你刚读到的价值,你知道那里有问题。
然后,检查转换是否成功:
if (scanf("%lf", &principal) != 1)
…oops! input error or EOF…