C Primer Plus 第六章部分习题

1 时间转换:

代码:

void time_change()
{
	while (1)
	{
		float min = 0;
		printf("请输入分钟数:");
		scanf_s("%f", &min);
		if (min > 0)
		{
			printf("转换成小时为:%f\n", min / MAX);
			printf("转换成秒为:%.2f\n", min * MAX);
			continue;
		}else
		{
			break;
		}
	}
}
执行结果:

请输入分钟数:100
转换成小时为:1.666667
转换成秒为:6000.00
请输入分钟数:


2 打印字符菱形:

代码:

void print_let()
{
	char c;
	while (1)
	{
		printf("请输入一个大写字母:");
		scanf("%c", &c);
		if (c >= 65 && c <= 90)
		{
			break;
		}
		else
		{
			printf("error!");
			continue;
		}
	}
	
	//printf("%d\n", (int)c);

	int rows = 2*(c - 64)-1; //要打印的总行数
	printf("总行数:%d\n", rows);
	int rows_1 = c - 64;
	printf("上部分行数:%d\n", rows_1);

	for (int i = 1; i <= rows_1; i++)
	{
		for (int j = 1; j <= rows_1 - i;j++)
		{
			printf(" ");
		}
		char min = 'A';
		for (int j = rows_1 - i+1; j <= rows_1; j++)
		{
			printf("%c", min);
			min++;
		}
		min--;
		for (int j = rows_1 + 1; j < rows_1+i; j++)
		{
			min--;
			printf("%c", min);
		}
		printf("\n");
		//for (int)
	}
	for (int i = rows_1 + 1; i <= rows; i++)
	{
		for (int j = 1; j <= i - rows_1; j++)
		{
			printf(" ");
		}
		char min = 'A';
		for (int j = i - rows_1+1; j <= rows_1; j++)
		{
			printf("%c", min);
			min++;
		}
		min--;
		for (int j = rows_1 + 1; j <= rows_1 + rows - i; j++)
		{
			min--;
			printf("%c", min);
		}
		printf("\n");
	}
}

执行结果

请输入一个大写字母:G
总行数:13
上部分行数:7
               A
               ABA
            ABCBA
         ABCDCBA
      ABCDEDCBA
   ABCDEFEDCBA
ABCDEFGFEDCBA
   ABCDEFEDCBA
      ABCDEDCBA
         ABCDCBA
           ABCBA
             ABA
               A


3 取款问题:账户有100万,年率利为%8,第年最后一天取出10万,多少年可以取完?

/*
账户有100万,年率利为%8,第年最后一天取出10万,多少年可以取完?
*/
void lose_money() {
	float cunkuan = 1000000;	
	int year = 0;
	while (cunkuan > 0)
	{
		cunkuan = cunkuan*1.08 - 100000;
		year++;
	}
	printf("%d年可以取完所有的钱\n", year);
}

打印结果:

21年可以取完所有的钱、


4 投资问题:投资100块 单利10% ,复利5%,多少年后复利会大于单利

代码:

void touzi() 
{
	float danli = 100;
	float fuli = 100;
	int year = 0;
	while (fuli <= danli) 
	{
		fuli = fuli*(1.05);
		danli = danli + 10;
		year++;
	}
	printf("%d年后,复利超过单利,此时单利为:%f,复利为:%f\n", year, danli, fuli);
}

打印结果:

27年后,复利超过单利,此时单利为:370.000000,复利为:373.345520
请按任意键继续. . .



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值