成了
在scanf函数后面也可以加一个判断,来判别输入是否合理,我这里就没加了
程序代码:
#include<stdio.h>
double Getsum(int[],int[],double[]);
main()
{
int N,i,j,k,l,m,n,a[5],b[5]={1,2,3,5,8},d[5];
double sum,max=0,c[5]={0.0063,0.0066,0.0069,0.0075,0.0084};
printf("请输入存多少年:");
scanf("%d",&N);
for(i=0;i<=N;i++)
for(j=0;j<N;j++)
for(k=0;k<=N;k++)
for(l=0;l<=N;l++)
for(m=0;m<=N;m++)
{
if(i+j*2+k*3+l*5+m*8==N)
{
a[0]=i;a[1]=j;a[2]=k;a[3]=l;a[4]=m;
sum=Getsum(a,b,c);
if(sum>max)
{
max=sum;
for(n=0;n<5;n++)
d[n]=a[n];
}
}
}
printf("最佳方案:先存一年期%d次,再二年期%d次,三年期%d次,五年期%d次,最后八年期%d次\n最佳方案下的本息和:%.2lf\n",d[0],d[1],d[2],d[3],d[4],max);
return 0;
}
double Getsum(int a[],int b[],double c[])
{
int i,j;
double sum1=2000;
for(i=0;i<5;i++)
for(j=1;j<=a[i];j++)
sum1+=sum1*c[i]*12*b[i];
return sum1;
}
[
本帖最后由 韶志 于 2013-5-25 01:24 编辑 ]