1 #include<stdio.h> 2 #include<math.h> 3 int year,n; 4 double p,q,F=0.0; 5 void innit() 6 { 7 printf("注释:p为现金\n"); 8 printf(" year为年限\n"); 9 printf(" n为年复利次数\n"); 10 printf(" q为年利率\n"); 11 printf(" F为年复利终值\n"); 12 } 13 void menu() 14 { 15 printf("\t|------------------------------------|\n"); 16 printf("\t| welcome |\n"); 17 printf("\t|------------------------------------|\n"); 18 printf("\t| 1、复利计算 |\n"); 19 printf("\t| 2、单利计算 |\n"); 20 printf("\t| 0、退出系统 |\n"); 21 printf("\t|------------------------------------|\n"); 22 } 23 //复利计算 24 void compoundinterest(){ 25 int I; 26 int ch; 27 B:printf("\t1、获取复利终值\n"); 28 printf("\t2、根据复利终值获取本金\n"); 29 printf("\t3、估算获得年终值的年限\n"); 30 printf("\t4、估算获得年终值的报酬率\n"); 31 printf("请选择功能<1~4>:"); 32 scanf("%d",&I); 33 if(I==1) 34 { 35 printf("请输入存款金额:"); 36 scanf("%lf",&p); 37 printf("请输入存入存蓄年限:"); 38 scanf("%d",&year); 39 printf("请输入年复利次数:"); 40 scanf("%d",&n); 41 printf("请输入年利率:"); 42 scanf("%lf",&q); 43 F=p*pow((1+q/n),year*n); 44 printf("复利终值为%lf:",F); 45 } 46 if(I==2) 47 { 48 printf("请输入复利终值:"); 49 scanf("%lf",&F); 50 printf("请输入存入存蓄年限:"); 51 scanf("%d",&year); 52 printf("请输入年复利次数:"); 53 scanf("%d",&n); 54 printf("请输入年利率:"); 55 scanf("%lf",&q); 56 p=F/(pow((1+q/n),year*n)); 57 printf("复利本金为%lf:",p); 58 } 59 if(I==3) 60 { 61 printf("请输入存款金额:"); 62 scanf("%lf",&p); 63 printf("请输入年利率:"); 64 scanf("%lf",&q); 65 printf("请输入年复利次数:"); 66 scanf("%d",&n); 67 printf("请输入年终值:"); 68 scanf("%lf",&F); 69 70 year=(int)(log(F/p)/log(1+q/n))/n; 71 // F=p*(1+q*year); 72 printf("年限为%d\n:",year); 73 74 75 } 76 if(I==4) 77 { 78 printf("请输入存款金额:"); 79 scanf("%lf",&p); 80 printf("请输入存入存蓄年限:"); 81 scanf("%d",&year); 82 printf("请输入年复利次数:"); 83 scanf("%d",&n); 84 printf("请输入年终值:"); 85 scanf("%lf",&F); 86 //F=p*pow((1+q/n),year*n); 87 q=n*(pow(F/p,1.0/(year*n))-1); 88 printf("复利的年利率为%lf:\n",q); 89 90 } 91 printf("\n\t是否要重新计算?(1/0)\n"); 92 scanf("%d",&ch); 93 if(ch==1) 94 { 95 goto B; 96 } 97 } 98 99 //单利计算 100 void simpleinterest() 101 { 102 int n; 103 int ch; 104 A:printf("\t1、获取单利终值\n"); 105 printf("\t2、根据单利终值获取本金\n"); 106 printf("\t3、估算获得年终值的年限\n"); 107 printf("\t4、估算获得年终值的报酬率\n"); 108 printf("请选择功能<1~4>:"); 109 scanf("%d",&n); 110 if(n==1) 111 { 112 113 printf("请输入存款金额:"); 114 scanf("%lf",&p); 115 printf("请输入存入存蓄年限:"); 116 scanf("%d",&year); 117 printf("请输入年利率:"); 118 scanf("%lf",&q); 119 120 F=p*(1+q*year); 121 printf("单利终值为%lf\n:",F);} 122 if(n==2) 123 { 124 printf("请输入单复利终值:"); 125 scanf("%lf",&F); 126 printf("请输入存入存蓄年限:"); 127 scanf("%d",&year); 128 printf("请输入年利率:"); 129 scanf("%lf",&q); 130 131 p=F/(1+q*year); 132 printf("本金为%lf\n:",p);} 133 if(n==3){ 134 135 printf("请输入存款金额:"); 136 scanf("%lf",&p); 137 printf("请输入年利率:"); 138 scanf("%lf",&q); 139 140 printf("请输入年终值:"); 141 scanf("%lf",&F); 142 143 year=(int)((F/p-1)/q); 144 // F=p*(1+q*year); 145 printf("年限为%d\n:",year); 146 147 } 148 if(n==4){ 149 printf("请输入存款金额:"); 150 scanf("%lf",&p); 151 printf("请输入存入存蓄年限:"); 152 scanf("%d",&year); 153 printf("请输入年终值:"); 154 scanf("%lf",&F); 155 //F=p*pow((1+q/n),year*n); 156 q=(F/p-1)/year; 157 printf("单利的年利率为%lf:\n",q); 158 159 160 } 161 printf("\n\t是否要重新计算?(1/0)\n"); 162 scanf("%d",&ch); 163 if(ch==1) 164 { 165 goto A; 166 }} 167 168 main(){ 169 int ch,n; 170 while(1){ 171 if(n==0) break; 172 innit(); 173 menu(); 174 printf("please chose<0~4>:"); 175 scanf("%d",&ch); 176 switch(ch){ 177 case 1:compoundinterest();break; 178 case 2:simpleinterest();break; 179 case 0:n=0;break; 180 }}}
原文:http://www.cnblogs.com/4249ken/p/5282805.html