标题:入门级别, 希望得到指导
只看楼主
RavenYOUNG
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2019-4-5
结帖率:75%
已结贴  问题点数:20 回复次数:4 
入门级别, 希望得到指导
这是算银行存款利息与本金的合计,不知道为什么输出的结果与算法算出的答案不对,求各位大神帮忙解答一下。
#include<stdio.h>
#include<math.h>
int main()
 {   
    float money,year ;   
     printf("输入存钱的本金和期限:");
    scanf("%f,%f",&money,&year);
    if (year<1)
        {
            printf("money=%f\n",money);
        }
      else if(year<2&&year>=1)
      {
     money*= pow(1+0.0225,year);
      printf("money=%f\n",money);
       }
        else if(year<3)
      {
      money*= pow(1+0.0243,year);
      printf("money=%f\n",money);
       }
         else if(year>=3&&year<5)
      {
      money*= pow(1+0.027,year);
      printf("money=%f\n",money);
       }
          else if(year>=5&&year<8)
      {
      money*= pow(1+0.0288,year);
      printf("money=%f\n",money);
       }
        else if (year>=8)
      {
     money*= pow(1+0.03,year);
      printf("money=%f\n",money);
       }
      
}


[此贴子已经被作者于2019-4-10 22:31编辑过]



捕获.PNG (108.8 KB)
搜索更多相关主题的帖子: 入门 money year printf pow 
2019-04-10 22:30
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:20 
这样?只给你改了改格式...
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    double money,year;
    printf("输入存钱的本金和期限:");
    scanf("%lf,%lf",&money,&year);
    if ( year<1 ){
        printf("money=%f\n",money);
    } else if( year<2 ) {
        money*= pow(1.0225,year);
        printf("money=%f\n",money);
    } else if( year<3 ) {
        money*= pow(1.0243,year);
        printf("money=%f\n",money);
    } else if( year<5 ) {
        money*= pow(1.027,year);
        printf("money=%f\n",money);
    } else if( year<8 ) {
        money*= pow(1.0288,year);
        printf("money=%f\n",money);
    } else {
        money*= pow(1.03,year);
        printf("money=%f\n",money);
    }

}

saber,别哭.
2019-04-11 09:39
RavenYOUNG
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2019-4-5
得分:0 
回复 2楼 幻紫灵心
你是对的 请问能告诉我我的为什么错吗?
2019-04-11 12:13
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:0 
回复 3楼 RavenYOUNG
你用的float不太好,pow是double类型的运算,存在精度丢失。
double pow(double _X,double _Y);

saber,别哭.
2019-04-11 13:25
RavenYOUNG
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2019-4-5
得分:0 
回复 4楼 幻紫灵心
我明白了谢谢
2019-04-11 18:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494062-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.164995 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved