诚意请教前辈们其中一道C作业
小弟初学C,有1道编程题不会做,请前辈们帮忙也一下,就要交作业了,挺着急的,万分感谢大家阿!!!
开放式基金是一种委托投资理财产品。用户可以向基金管理机构购买/赎回基金,基金管理机构负责将基金投资于股票等金融产品获取收益,并收取一定的管理费用。假设某基金在成立时每份面值为1元,申购费率为1.5%,赎回费率为0.5%。则有如下规则:
1.每个用户购买时的金额必须大于等于1000,并且是1000的整数倍;
2.基金份额 = 购买金额×(1-申购费率)/份额面值;
3.基金运作后每天公布当日每份基金净值,如0.9871或者1.0121,则:
用户当前净值=基金份额×当日每份基金净值;
4.每日净值增长率=(当日每份基金净值-昨日每份基金净值)/昨日每份基金净值×100%;
5.浮动盈亏=用户当前净值×(1-赎回费率)-购买金额;
6.周平均净值 = 一周每日净值的和/工作日;
编写一个程序,要求用户输入在基金成立时的购买金额和基金运作第一周的每日份额净值,统计一周来用户的收益情况。例如,一次程序运行的情况如下:
Please input your money(> 1000, and multiple): 1500
1500 is not multiple of 1000.
Please input your money(> =1000, and multiple): 10000
Please input everyday net value in this week:
0.9872 0.9935 1.0102 0.9905 1.0235
Quotient Net Value Increase Rate Current Value Current Payoff
9850 0.9872 -1.28% 9724 -325
9850 0.9935 0.64% 9786 -263
9850 1.0102 1.68% 9950 -99
9850 0.9905 -1.95% 9756 -292
9850 1.0235 3.33% 10081 31
Average Net Value in this week = 1.00098
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int js(int money,float value[])
{
int Quotient,Cvalue[6],Cpayoff[6],t,i;
float IRate[6],avgvalue;
Quotient=money*(1-0.015)/1.0;
for(i=1;i <6;i++)
{
IRate[i]=((value[i]-value[i-1])/value[i-1])*100;
Cvalue[i]=Quotient*value[i];
Cpayoff[i]=(Quotient*value[i])*(1-0.005)-money;
}
avgvalue=(value[1]+value[2]+value[3]+value[4]+value[5])/5.0;
printf( "Quotient\tNet Value\tIncrease Rate\tCurrent Value\tCurrent Payoff\n ");
for(i=1;i <6;i++)
printf( "%d\t\t%f\t%f%%\t%d\t\t%d\n ",Quotient,value[i],IRate[i],Cvalue[i],Cpayoff[i]);
printf( "Average Net Value in this week :%f ",avgvalue);
}
int main(int argc, char *argv[])
{
int money,i;
float value[6];
printf( "Please input your money(> 1000, and multiple): ");
scanf( "%d ",&money);
if(money%1000!=0)
printf( "1500 is not multiple of 1000\n ");
else
{
printf( "Please input everyday net value in this week: ");
value[0]=1;//设置第一天的前一天的每份基金净值
scanf( "%f,%f,%f,%f,%f ",&value[1],&value[2],&value[3],&value[4],&value[5]);
}
js(money,value);
system( "PAUSE ");
return 0;
}
这时候给你发不知道晚了没.
这道题和前面的高手们说的一样很简单,你就把数据搞清楚就行了.
不弟不才把我做的发给你,有一点点误差就是四舍五入的问题没有弄.