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

这篇博客介绍了C Primer Plus第6版中第六章的第6.16编程练习,提供了三个逐步改进的程序版本。文章提到第二个级数为收敛,但第一个级数不收敛,作者表示需要回顾书本以补充数学证明。
摘要由CSDN通过智能技术生成

6.16编程练习

/*
编写一个程序,创建一个包含26个元素的数组,并在其中存储26个小写字母。
然后打印数组的所有内容
*/
#include <stdio.h>
#define SIZE 26
int main(void)
{
	char alphabet[SIZE];
	int index;
	for (char ch = 'a', index = 0; ch <= 'z'; ch++, index++)
		alphabet[index] = ch;
	for (int index = 0; index < SIZE; index++)
		printf("%c \n", alphabet[index]);

	return 0;
}
/*
使用嵌套循环(nested loop)按照下面的格式打印字符:
$
$$
$$$
$$$$
$$$$$
*/
#include <stdio.h>
int main(void)
{
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < i+1; j++)
			printf("$");
		printf("\n");
	}
	
	return 0;
}
/*
使用嵌套循环nested loop,按下面的格式打印字母
F
FE
FED
FEDC
FEDCB
FEDCBA
此程序可以修改CH来打印各种字符递减的三角形
比如当CH改为H时,输出效果如下:
H
HG
HGF
HGFE
HGFED
HGFEDC
HGFEDCB
HGFEDCBA
*/
#include <stdio.h>
#define CH 'F'
int main(void)
{
	char ch = CH;
	for (int i = 0; i <=CH - 'A'; i++)
	{	
		for (int j = 0, ch = CH;  j<= i; j++, ch--)//从F开始打印,第一次打印1个
			printf("%c", ch);		  //第二次打印两个,利用与外层循环变量i的关系控制	
		printf("\n");
	}	

	return 0;	
}
  1. 此程序提供了3个版本,依次改进

/*
使用嵌套循环,按下面的格式打印字母:
A
BC
DEF
GHIJ
KLMNO
PQRSTU
*/
#include <stdio.h>
int main(void)
{	
	const char end = 'U';
	char start;
	
	for (int i=0, start = 'A'; ch <= 'U'; i++)
	{
		for (int j=0; j <= i; j++)	//利用行数与打印字符之间的关系
		{
			printf("%c", start);
			start++;		//每打印一个字符,字符递增至下一个字符	
		}
		printf("\n");			//每一行结束后,换行	
	}	

	return 0;
}
//*************************************************************************
/*
下面是增强版,简化了代码行数,并可让用户输入指定字符
打印三角形至输入字符所在行
如输入V,则打印:
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZ[\
*/
#include <stdio.h>
int main(void)
{
	char end;
	char start;
	
	printf("Enter an character: \n");
	scanf("%c", &end);
	for (int i = 0, start = 'A'; start <= end; i++)
	{
		for (int j=0; j<=i; j++, printf("%c", start), start++);
		printf("\n");
	}

	return 0;
}
//*************************************************************************
/*
进了上个程序,使其只会打印至用户输入的字符处,不同于上个程序
会完整输出字符所在的整行
*/
#include <stdio.h>
int main(void)
{
	char start;
	char end;

	printf("Enter an end of the character: \n");
	scanf("%c", &end);
	for (int i = 0, start = 'A'; start <= end; i++)
	{
		for (int j = 0; j <= i; j++,start++)
		{
			if (start<= end)
				printf("%c", start);
		}
		printf("\n");
	}

	return 0;
}
/*
编写一个程序,提示用户输入大写字母
使用嵌套
  • 22
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值