C语言与现实问题

1.求利率问题

某人到银行存1000元,有以下三种方案第一种存活期一年年利率为0.36%,第二种存半年取完之后再存半年,利率为2.25%,第三种存死期一年利率为1.98%,问哪种方式一年后获利最大

#include<stdio.h>
int main()
{
	float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3,c;
	p1=(1+r1)*p0;
	p2=(1+r2)*(1+r2)*p0;
	p3=(1+r3)*p0;
	if(p1>p2&&p1>p3)
	c=p1;
	if(p2>p1&&p2>p3)
	c=p2;
	if(p3>p1&&p3>p2) 
	c=p3;
	
	printf("%12.3f %12.3f %12.3f %12.3f",p1,p2,p3,c); 
	return 0;

}

93103ad4037e4e0f87d595e1ddef7f3b.bmp

经过比较便可以求出最划算的存钱方式 

2.C算法之兔子繁衍问题

 问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少

经分析可以用递归实现: 因为一对兔子就能生一对兔子,能生产的兔子总数和他们生下来的兔子总数是相等的,当月的兔子总数等于前一个月的总数加上新生兔子数,新生兔子数又等于前三个月的兔子总数

  

#include<stdio.h>
int f(int month)
{
    int sum;
    if(month <= 3){
        sum = 2;
        return sum;
    }
    else{
        sum = f(month-3)+f(month-1);
        return sum;
    } 
}
int main()

{
	int f(int month);
    int month,rstrab=0;
    printf("输入月份:");
    scanf("%d",&month);
    if(month<1)
        printf("输入错误!\n");
    
    else{
        rstrab=f(month);
        printf("第 %d 月兔子总数为: %d 只\n",month,rstrab);
    }
    
    return 0;
}

aa695ee8a1e4488d892f5a0c7eb1e08f.bmp

3.C语言划分学生成绩等级

输入一个百分制成绩,要求输出成绩等级’A’、’B ’、’C ’、’D ’、’E ,使用 switch 语句。90 分及以上为’A’8089 ’B 7079 ’C 6069 ’D  60 分以下为’E 。要求从键盘输入成绩,然后输出相应等级,用 switch语句

语句实现。要求输出等级和成绩,并且保留 2位小数

代码如下

#include<stdio.h>
int main()
{
	float s;
	int y;
	scanf("%f",&s);
	y=s/10;
	switch(y)
	{
    	case 9:
		printf("你的等级为A,成绩为%.2f",s);
		break;
			case 8:
		printf("你的等级为B,成绩为%.2f",s);
		break;
			case 7:
		printf("你的等级为C,成绩为%.2f",s);
		break;
			case 6:
		printf("你的等级为D,成绩为%.2f",s);
		break;
		default:
			printf("你的等级为E,成绩为%.2f",s);
		
}
return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值