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

       间隔一月多才发第七章是因为开始写毕业论文了,向各位道歉,之后会加快速度。第六章从阅读量上看还是较受欢迎的,涨了二十多个关注,开心噢=w=,进入正题。

       首先,最近尝试安装了Visual Stdio 2017,比起Dev C++来说复杂很多但真正工程肯定得用它,为了方便目前以后者为主。不过学完这本书后,我会继续学计算机专业其他课程,然后开始学着用VS。毕竟很多新特性、新需求在VS上才能实现。

       其次,关于这一章,学习的过程整体不算困难,我卡壳的地方有三个。一是P188程序7.5里头关于使用“标记”这一方法,二是P195程序7.7里关于“标记”应用实例,三是P198程序7.9里求多个数最值时设min=MAX、max=MIN的技巧。

       前两者都是关于如何用“标记”方法解决逻辑问题,后者是一种解决结构问题的手段。

       这些方法给时间是能够想出替代品的,但这三个案例里给出的是前人千锤百炼总结的技巧,类似于数学题的巧解方法。如果不是出生科班有老师教授,那么我认为这值得类似于我这样的自学萌新反复理解然后尝试,以期达到掌握。

       最后,提及我发现的一些问题,1、多重选择的else if结构以if开头,中间用多个else if,结尾用else结束,但实际上也能用else if结尾,switch结构最后的default也是同理可以省略的。2、switch结构里case:后面输入 return 0作为语句,你可以结束整个程序,目前章节还没提及这个我是参考别人写的第八题中如何实现“输入5,结束整个程序”而得知的,相信后面的章节会讲解。  

      附上程序。

#include <stdio.h>
#include <ctype.h>
int main(void)
{
	char c, prev;
	int m, p, q;
	
	m = p = q = 0;
	
	while((c = getchar()) != '#')
	{
		if(!isspace(c))
		m++;//统计其他字符数 
		if(c == '\n')
		p++;//统计换行数 
		if(isspace(c))
		q++;//统计换行数与空格的总和(即空白数) 
		prev = c;
	}
	q = q - p;//没有函数能直接算空格数,只能间接算:空白数-换行数=空格数 
	if(prev != '\n')
	p++;//参照P194考虑,#在一行中间算换行数需要加一的情况,且不能放在空格数计算前,否则会少算空格数 
	
	printf("空格数为%d,换行符数为%d,其他字符数%d", q, p, m);
	 
	return 0;
}
#include <stdio.h>
int main(void)
{
	char c;
	int n;
	
	n = 0;
	
	while((c = getchar()) != '#')
	{
		if(c != '\n')//这个if使最后不把Enter也打印出来 
		{
		n++;
		printf("%c-%d   ", c, c);
		if(n % 8 == 0)
		printf("\n");
		}
	} 
	 
	return 0;
}
#include <stdio.h>
int main(void)
{
	int n, p, q, odd_and, even_and;
	float odd_avg, even_avg; 
	
	p = q = odd_and = even_and = 0;
	
	scanf("%d", &n);
	 
	while(n != 0)
	{
		if(n % 2 == 0)
		{
			p++;
			odd_and += n;
		}
		else
		{
			q++;
			even_and += n;
		}
		scanf("%d", &n);	
	}
  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值