C Primer Plus(第6版)第六章编程练习答案

       好久没发啦,这是第六章的答案。之前人生发生了颇大的变故,不提也罢。

       之前发现CSDN上写《C Primer Puls》这本书课后答案的不少,没想到我居然受到到了几位朋友点赞,看来萌新风格对萌新更友好啊。关于@天姬or田鸡提到第五章第1题minute应该从>=改为>更符合题目语义我深表赞同,已加以修改。

        回归正题,第六章引入while、for、do  while、三种循环后,课后题目写法就不像之前那样单一了,不同的人出于数学上考虑的差异,程序的逻辑也各有不同。为写好第六章,在自己编完后看对比别人的版本得出一个结论:简洁。

        都说程序可读性是最重要的,而写循环最能让人看懂的方式就是简洁。少写变量,少用嵌套循环(事实上书里就是这样倡导,比如第14题就要求不要用嵌套循环)。课后题目比起动辄上千行的实际工程简单多了,若课后题目写的都艰涩复杂,那实际工作岂不得要命?而且研究如何写的轻便高效也是锻炼的过程。

        第六章中第5题和第14题是我个人认为最难的,均花了2个多小时才逐渐写出来。建议和我一样的萌新不要急着看答案,先自己写完再比照别人的。

        第5题,最后我设计了一种输入任意字母均可形成金字塔的写法,而网上很多答案都是只能输入E形成金字塔。第14题要求不用嵌套循环,但我发现找到的答案几乎全部用了嵌套循环。当然,实际工程中不需要太多的奇技淫巧(比如最近大火的《太吾绘卷》据说被很多程序员吐槽写的乱),但能写出来还是很有意思的嘛。

#include <stdio.h>
int main(void)
{
	char Letters[26], x = 'a';
	int n;
	
	for(n = 0; x <= ('a' + 25); x++, n++) 
	{
		Letters[n] = x;
		printf("%c", Letters[n]);
	}
		return 0;
 } 
#include <stdio.h>
int main(void)
{
	int n, m;
	
	for(n = 1; n <= 5; n++)
	{
		for(m = 1; m <= n; m++)
		printf("$");
		printf("\n");
	}
	
	return 0;
}
#include <stdio.h>
int main(void)
{
	int n, m;
	char letter;
	
	for(n = 1; n <= 6; n++)
	{
		for(letter = 'F', m = 1; m <= n; m++, letter--)
  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值