/*2022.4.23 */
/* 编写一个程序,创建一个包含26个元素的数组, 并在其中存储26个元素的数组,并在其中存储26个
小写字母,然后打印数组的所有内容 */
/* 编程分析 :程序的主要功能是使用数组存储并显示26个小写字母,程序需要两个循环,第一个
循环初始化并存储小写字母,第二个循环用来打印数组的元素,数组存储的是小写字母,所以
应定义元素数据类型为字符的数组,长度应当等于26,*/
//#include <stdio.h>
//int main()
//{
// char alphaet[26];
// int i;
// char c = 'a';
//
// /* 定义变量i 为数组的下标,c 从字符a 开始递增 */
// /* 获得26个字母*/
// for (i = 0; i < 26; i++, c++)
// alphaet[i] = c;
// /*for 循环的循环跟新部分,跟新了下标和字母表 */
// for (i = 0; i < 26; i++)
// printf("%c", alphaet[i]);
//
// return 0;
//}
/* 使用嵌套循环,按下面的格式打印字符 */
//$
//$$
//$$$
//$$$$
//$$$$$
/*编程分析:通常在频幕上打印多行数据时需要使用嵌套循环来控制打印,外层循
控制打印的行数,内层循环控制打印的行内内容,题目要求打印5行,因此外层
循环次数为5,内层循环在第1行打印1个字符,在第二行打印2个字符,即循环
次数为行数,因此外层循环的第N次循环需要作为内层循环的循环次数,
完整代码如下*/
//#include<stdio.h>
//int main()
//{
//
// int i, j;
// for (i = 1; i <= 5; i++)
// /*外层控制行数*/
// for (j = 0; j < i; j++)
// /* 内层控制循环*/
// printf("$");
// printf("\n");
//
// return 0;
//}
//#include<stdio.h>
//int main()
//{
// int i, j;
// for (i = 1; i <= 5; i++)
// {
// //printf("\n");
// /*外层控制行数*/
// for (j = 0; j < i; j++)
// /* 内层循环控制*/
// printf("$");
// printf("\n");
// }
// return 0;
//}
/* 使用嵌套循环按下面的格式打印字母*/
/*F
FE
FED
FEDC
FEDCB
FEDCBA*/
/* 编程分析:程序最终打印6行字符,字符数量逐行递增,且行内字符从‘F’递增,由此可以分析出
嵌套循环中外层循环执行6次,内层循环表示第N行打印N个字符,且字符从‘F’递减,完整代码如下*/
//#include<stdio.h>
//int main()
//{
// int i, j;
// char c;
// /* 循环控制变量的定义*/
// for (i = 1; i <= 6; i++)
// {
// /* 外层循环控制行数,共6行 */
// for (j = 0, c = 'F'; j < i; j++, c--)
// /* 内层循环控制行内打印的字符数,j < i 表示 第N行打印N 个字符*/
// /* char 类型 c 从'F'开始,每次打印时,跟新 c-- */
// /* 实现字符的递减效果,在第6行,可以输出'A'*/
// printf("%c", c);
//
//
// }
//
// return 0;
//}
/* 使用嵌套循环 按照下面的格式打印字母*/
/*A
BC
DEF
GHIJ
KLMNO
PQRSTU
*/
/* 编程分析:程序使用嵌套循环,打印6行,每行内数据递增,内层循环中不初始化
待打印字符,for (j = 0, c = 'F'; j++, c--),*/
//#include <stdio.h>
//int main()
//{
// int i, j;
// char c = 'A';
// /* 初始化待打印字符*/
// for (i = 1; i <= 6; i++)
// {
// /*外层循环控制行数,共6行*/
// for (j = 0; j < i; j++, c++)
// /* 内层循环不初始化待打印数据,且使用c++ 进行递增 */
// printf("%c", c);
// printf("\n");
//
// }
//
// return 0;
//}
//
/*----------------------------------------------------------------------------------------------------------------------------------------不对*/
/* 编写一个程序,提示用户输入大写字母,使用嵌套循环以金字塔的格式打印字母
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA */
/*编程分析:程序首先读取用户输入的大写字母,并通过嵌套循环,打印金字塔类型的字母表,
其中每行的字母正序和逆序显示,每行的最大字符,(中间字符)与行数有关,第一行
的最大字符为‘A,第2行的最大字符为‘B',第3行的最大字符为‘C’,....
第5行的最大字符为‘E’,为了保证每行字符居中,若字符数量不足,需要通过空格填充
使其成为正三角形结构, 为了保证行内的打印效果,在内层循环中应该判断每行
打印的空格数,程序的算法有很多种,其中最简单的算法是,空格数,正序字符数,
逆序字符数分开打印,*/
//#include <stdio.h>
//int main()
//{
// int i, j, num;
// char c;
// printf("enter the core char you want to print(A...Z:");
// scanf("%c", &c);
// char ch = 'A';
// num = c - 'A' + 1;
// /*输入字符的ASCII码减去'A'加1 得到的十进制结果 num */
// /* num即是需要打印的从‘A'开始的字符数,也是打印的总行数*/
// for (i = 1; i <= num; i++)
// {
// /*外层循环控制行数,num 为输入字符和A的差加1* */
// for (j = 0; j < num; j++)
// printf(" ");
// /* 打印空格,空格数为总字符数减去当前行应打印的字符数 */
// /* 即,本行应打空格数 + 应打印字符数 = 总字符数 */
// for (ch = 'A'; j < num; j++)
// printf("%c", ch++);
// /* 打印正序字符数时,需要通过ch 做递增操作,起始值 J 在空格处
// 已经通过循环 * 做了初始化,因此只打印剩余字符数 */
// for (j = 1, ch -= 2; j < i; j++, ch--)
// printf("%c", ch);
// /* 在打印你序字符时,字符做递减操作 */
// printf("\n");
//
// }
// return 0;
//}
//#include <stdio.h>
//int main()
//{
// int i, j, num;
// char c;
// printf("enter the core char you want to print(A...Z):");
// scanf("%c",&c);
// char ch = 'A';
// num = c - 'A' + 1;
// /*输入字符的ASCII码减去 'A'加1得到的十进制结果 num
// * .num 既是需要打印的从A 开始的字符数,也是打印的总行数 */
// for (i = 1; i <= num; i++)
// {
// /* 外层循环控制打印行数,num 为输入字符和 A 的差加 1* */
// for (j = 0; j < num - i; j++)
// printf(" ");
// /* 打印空格、空格数为总字符数减去当前行应打印的字符数 */
// /* * 即,本行应打印空格数 + 应打印字符数 = 总字符数(总行数)*/
// for (ch = 'A'; j < num; j++)
// printf("%c", ch++);
// /*在打印正序字符数时,需要通过 ch 做递增操作,起始值 j 在空格处
// 已经通过循环 * 做了初始化,因此只打印剩余字符数 */
// for (j = 1, ch -= 2; j < i; j++, ch--)
// printf("%c", ch);
// /*在打印逆序字符时,字符做递减操作 */
// printf("\n");
//
// }
//
//
//
// return 0;
//}