| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 423 人关注过本帖
标题:求高手指点
只看楼主 加入收藏
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
求高手指点
float calculateMonthlypayment(float* IM,float* PP, float* NB)
{
     
    float rateM;
    float MP,PR;
    *IM=PR*rateM;                //月利息=本金*月利息
    *PP=MP-IM ;                    //月还本金=月还总额-月利息
    *NB=PR-PP;                    //新本金=本金-月还本金
    return 0;
}

以上是错误的地方,我不知道咋改,
以下是原函数



#include<stdio.h>

#include<math.h>

float printInformation(float PR,float rateY,float MP);
float calculateMonthlypayment(float*IM,float* PP, float* NB);
float printAmortizationTable(float NB,float PR,float IM,float PP);
int main()
{
    float PR,MP,IM,NB,PP,rateY;                    //PR是本金,MP是每月要还的钱,IM是每月要还的利息,PP是要还的本金,rateY是年利率;
    printInformation( PR,rateY,MP);
    calculateMonthlypayment(&IM,&PP,&NB);
    printAmortizationTable(NB,PR,IM, PP);
    return 0;
}
float printInformation(float PR,float rateY,float MP)
{
    int Y,M;                                    //Y;年。M;月;
    float rateM;                                //rateM是月利率;
    printf("the amont of the loan(principal);  ");
    scanf("%f",&PR);
    printf("interest rate/year (percent);  ");
    scanf("%f",&rateY);
    printf("interest rate/month (decimal);  ");
    scanf("%lf",&rateM);
    printf("number of years; ");
    scanf("%d",&Y);
    printf("number of month;  ");
    scanf("%d",&M);
    printf("monthly payment; ");
    scanf("%f", &MP);
    return 0;
}


float calculateMonthlypayment(float* IM,float* PP, float* NB)
{
     
    float rateM;
    float MP,PR;
    *IM=PR*rateM;                //月利息=本金*月利息
    *PP=MP-IM ;                    //月还本金=月还总额-月利息
    *NB=PR-PP;                    //新本金=本金-月还本金
    return 0;
}


float printAmoitizationTable(float PR,float PP,float NB)
{
    int M;
    float IM,MP;
    float sum=0.00;
    printf("            old            month        Interest        principal        new\n");
    printf("month\n");
    printf("            Balanxe        payment          paid              paid            balance\n");
    for(M=1;M<=12;M++)
    {
        printf("%d   %f   %f    %f   %f   %f ",M,PR,MP,IM,PP,NB);
        PR=NB;
        sum=sum+PP;
    }

     printf("total amount paid; %f",&sum);
}

搜索更多相关主题的帖子: 利息 include return 原函数 
2012-11-22 21:17
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:10 

    *PP=MP-IM ;        MP是变量,IM 是地址怎么运算啊,IM貌似要加星的啊            
    *NB=PR-PP         和上面一样,一个是变量,一个是地址,没法运算啊。。
  

我是菜鸟打酱油

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-22 21:27
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
收藏
得分:5 
表示看不懂。
2012-11-22 21:28
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
小强,你的代码是不是应该把  float PR,MP,IM,NB,PP,rateY; 改成全局声明呀,不然你可以个被调函数的形参赋值,但是这个值不能传递传递给实参啊。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-22 21:34
小波皮
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2012-11-22
收藏
得分:5 
没细看,但LZ还是先弄清楚形参跟实参吧,这两个你都弄错了
2012-11-22 21:46
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
收藏
得分:0 
回复 2楼 yaobao
加过还是不行啊
2012-11-22 22:19
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
收藏
得分:0 
回复 5楼 小波皮
你先运行一下看我搞错没
2012-11-22 22:21
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
LZ  你把代码贴放出来把

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-22 22:26
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
收藏
得分:0 
回复 8楼 yaobao
我编的全在上面了,
2012-11-22 22:44
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
楼主,我把你的代码弄了下,虽然还存在问题,但是编译应该能通过了
程序代码:
#include<stdio.h>
void printInformation(void);
void calculateMonthlypayment(void);
void print(void);
    float PR,MP,IM,NB,PP,rateY,rateM;int Y,M;
int main()
{

    printInformation();
    calculateMonthlypayment();
   print();
    return 0;
}
void printInformation()
{
    float rateM;
    printf("the amont of the loan(principal);  ");
    scanf("%f",&PR);
    printf("interest rate/year (percent);  ");
    scanf("%f",&rateY);
    printf("interest rate/month (decimal);  ");
    scanf("%lf",&rateM);
    printf("number of years; ");
    scanf("%d",&Y);
    printf("number of month;  ");
    scanf("%d",&M);
    printf("monthly payment; ");
    scanf("%f", &MP);
}


void calculateMonthlypayment(void)
{
    IM=PR*rateM;
   PP=MP-IM ;
    NB=PR-PP;
}


void print(void)
{
    float sum=0.00;
    printf("            old            month        Interest        principal        new\n");
    printf("month\n");
    printf("            Balanxe        payment          paid              paid            balance\n");
    for(M=1;M<=12;M++)
    {
        printf("%d   %f   %f    %f   %f   %f ",M,PR,MP,IM,PP,NB);
        PR=NB;
        sum=sum+PP;
    }

     printf("total amount paid; %f",&sum);
}


我是新手,打酱油滴。。。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-22 22:47
快速回复:求高手指点
数据加载中...
 
   



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

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