鱼C论坛

 找回密码
 立即注册
查看: 3393|回复: 4

EX3.20+3 计算存款的本金合计

[复制链接]
发表于 2022-6-12 00:37:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已知银行整存整取存款不同期限的利率分别为:半年2.55%,一年2.75%,二年3.35%,三年4.00%,五年4.75%。要求输入存钱的本金和期限,输出到期时的本金和利息合计。

输入格式:
"%f%f"

输出格式:
"%.2f"

输入样例:
在这里给出一组输入。例如:

1000 0.5
输出样例:
在这里给出相应的输出。例如:

1012.75


#include <stdio.h>
#include <math.h>
int main()

{
 int n;
 double a,rate,capital,deposit; 
 printf( "Please enter capital,year:\n");
 scanf("%f%f",&capital,&n);
 switch(n)
    {  
         case(0.5) :a=pow(1+2.55%,n);break;
     case(1) :a=pow(1+2.75%,n);break;
     case(2):a=pow(1+3.35%,n);break;
     case(3):a=pow(1+4.00%,n);break;
     case(4):a=pow(1+4.75%,n);break;
    }
     deposit=capital*a;
    printf("deposit=%.2f\n",deposit);
}
 return 0; 
}

12        11 [Error] case label does not reduce to an integer constant  
            [错误]case标号不能简化为整数常量
12        27[Error] expected primary-expression before ',' token
           [错误]在','标记之前期望主表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-12 09:38:40 | 显示全部楼层
#include <stdio.h>
#include <math.h>

int main()
{
    int n;
    double a, rate, capital, deposit;
    printf("Please enter capital,year:\n");
    scanf("%f%f", &capital, &n);

    /*
    * 
    * ---------------> switch ... case ... 只能是整型,不能是浮点!case 没有括号!
    * ---------------> 百分比符号在 C 里面是取模,想要百分比用小数点!
    * 
    switch (n)
    {
    case(0.5):a = pow(1 + 2.55 %, n); break;
    case(1):a = pow(1 + 2.75 %, n); break;
    case(2):a = pow(1 + 3.35 %, n); break;
    case(3):a = pow(1 + 4.00 %, n); break;
    case(4):a = pow(1 + 4.75 %, n); break;
    }
    */

    if (n < 1) {
        a = pow(1 + .0255, n);
    }
    else if (n < 2) {
        a = pow(1 + .0275, n);
    }
    else if (n < 3) {
        a = pow(1 + .0335, n);
    }
    else if (n < 4) {
        a = pow(1 + .04, n);
    }
    else if (n < 5) {
        a = pow(1 + .0475, n);
    }
    deposit = capital * a;
    printf("deposit = %.2f\n", deposit);
    
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-12 11:54:15 | 显示全部楼层

根据要求和你的提醒修改了一下,但结果还是不对QAQ
Please enter capital,year:
1000 0.5
deposit = 1012.67
#include <stdio.h>
#include <math.h>

int main()
{
    float n,a, rate, capital, deposit;
   
    scanf("%f%f", &capital, &n);
    if (n>=0&&n < 1) 
    {
        a = pow(1 + .0255, n);
    }
    else if (n < 2)
    {
        a = pow(1 + .0275, n);
    }
    else if (n < 3) 
    {
        a = pow(1 + .0335, n);
    }
    else if (n < 4) 
    {
        a = pow(1 + .04, n);
    }
    else if (n < 5) 
    {
        a = pow(1 + .0475, n);
    }
    deposit = capital * a;
    printf("%.2f", deposit);
    
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-12 11:59:00 | 显示全部楼层
我爱橙 发表于 2022-6-12 11:54
根据要求和你的提醒修改了一下,但结果还是不对QAQ
Please enter capital,year:
1000 0.5

我的公式是用你写的,我没有验证对错,如果答案不对,表示你的公式也有错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-12 21:56:19 | 显示全部楼层
整数年份利率例题
#include <stdio.h>
#include <math.h> 
int main() 
{ 
        int year; 
        double rate, capital, deposit; 
        printf("Please enter year,capital:"); 
        scanf("%d,%lf", &year, &capital); 
        switch (year) 
        { 
                case 1: rate = 0.0225;break; 
                case 2: rate = 0.0243;break; 
                case 3: rate = 0.0270;break; 
                case 5: rate = 0.0288;break; 
                case 8: rate = 0.0300;break; 
                default: printf("Error rate!\n"); 
                exit(0); 
        } 
        deposit =capital * pow(1+rate, year); 
        printf("rate = %f, deposit = %f\n", rate, deposit); 
        return 0; 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 20:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表