私はこれにかなり慣れていないので、これは素人の間違いだと確信しています。基本的な金融計算機を作成しようとしていますが、コンパイルしようとするとこのエラーが発生し続けます。
findn.c: 関数 'main' 内: findn.c:36:3: 警告: 形式 '%f' は型 'float *' の引数を予期していますが、引数 2 の型は 'double' です [-Wformat] findn.c: 50:3: 警告: フォーマット '%f' はタイプ 'float *' の引数を想定していますが、引数 2 のタイプは 'double' です [-Wformat]
私が知る限り、引数はfloat 型です。何を与える?また、何か他のことを遠慮なく指摘してください。私のコードがずさんであると確信しています。
#include <stdio.h>
#include <math.h>
void findN (float PV, float FV, float interest)
{
float iDec = interest / 100;
float onePlusI = iDec + 1;
float leftSide = FV / PV;
float logOne = log(leftSide);
float logTwo = log(onePlusI);
float N = logOne / logTwo;
printf("%f\n", N);
}
void findI (float PV, float FV, float N)
{
float leftSide = FV / PV;
float expN = 1 / N;
float iPlusOne = pow(leftSide, expN);
float iDec = iPlusOne - 1;
float interest = iPlusOne * 100;
printf("%f\n", interest);
}
main ( )
{
int userInput;
printf("Press 1 to find Present Value, 2 to find Future Value, 3 to find Interest, or 4 to find Number of Periods\n");
scanf("%d", &userInput);
if (userInput = 3)
{
float Pres3;
float Fut3;
float Num3;
printf("Enter Present Value\n");
scanf("%f", Pres3);
printf("Enter Future Value\n");
scanf("%f", &Fut3);
printf("Enter the Number of Periods\n");
scanf("%f", &Num3);
findN(Pres3, Fut3, Num3);
}
else if (userInput = 4)
{
float Pres4;
float Fut4;
float Int4;
printf("Enter Present Value\n");
scanf("%f", Pres4);
printf("Enter Future Value\n");
scanf("%f", &Fut4);
printf("Enter interest\n");
scanf("%f", &Int4);
findN(Pres4, Fut4, Int4);
}
}