2022.4.23

/*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;
//}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值