注册 登录
编程论坛 C语言论坛

帮小弟改改

门中人ysl 发布于 2023-03-22 10:57, 863 次点击
#includ<stdio.h>
#include<math.h>
int main(viod)
{
   
    int day;
    double factor,initial,result;
   
    printf("Enter inital:");
    scanf("%If",&initial);
    printf("Enter factor:");
    scanf("%If",&factor);
    printf("Enter day:");
    scanf("%d",&day);
    result=initial*pow(1+factor,day);
    printf("result=%.2f\n",result);
   
   
    return 0;
   
}
5 回复
#2
阳光上的桥2023-03-22 11:03
scanf里面的If应该修改为lf,字母L的小写,表示double类型变量输入。

最后一个printf输出result的时候,也是double类型,也应该使用lf,原来的语句的f前面添加字母L的小写
#3
rjsp2023-03-22 14:15
对于 variable-argument 函数而言,float会提升到double(对于普通函数其实也一样,只不过又转了回去)(类似的还有 低于int的整型会提升到int),因此对于 printf 而言,它无法分辨调用者当初传入的是 float 还是 double。
所以在 printf 中 float/double 起先都使用 %f,只不过后来发现错用 %lf 的人太多(因为scanf中double使用%lf),才不得已让 %lf 也合法。亦即在 printf 中,若参数是 float 或 double,那么 %f 与 %lf 一样。
#4
rjsp2023-03-22 14:16
程序代码:
#include <stdio.h>
#include <math.h>

int main( void )
{
    double initial;
    printf("Enter inital: ");
    scanf("%lf", &initial);

    double factor;
    printf("Enter factor: ");
    scanf("%lf", &factor);

    int day;
    printf("Enter day: ");
    scanf("%d", &day);

    double result = initial*pow(1+factor,day);
    printf( "result = %.2f\n", result );
}
#5
门中人ysl2023-03-22 19:52
大哥能不能带带我自学太累而且要绕好久

[此贴子已经被作者于2023-3-22 19:54编辑过]

#6
门中人ysl2023-03-22 20:02
回复 4楼 rjsp
大哥带带我拜托
1