C语言for循环打印各种字符三角形+菱形的方法

分手后的思念是犯贱 2022-03-22 08:09 453阅读 0赞

1.编写一个程序,在用户输入某个大写字母后,产生一个金字塔图案,例如输入字母E:

  1. A
  2. ABA
  3. ABCBA
  4. ABCDCBA
  5. ABCDEDCBA

C语言代码实现:

  1. #include <stdio.h>
  2. /*
  3. 1***A
  4. 2**ABA
  5. 3*ABCBA
  6. 4ABCDCBA
  7. */
  8. int main()
  9. {
  10. char tem;
  11. int num,i,j;
  12. printf("输入一个大写字母\n");
  13. scanf("%c",&tem);
  14. while(tem>90 || tem<65)
  15. {
  16. scanf("%c",&tem);
  17. printf("你输入的不是大写字母,请重新输入!!!!\n");
  18. }
  19. num = tem-(90-26);
  20. //三角形输出
  21. for(i=1;i<=num;i++)
  22. {
  23. for(j=1;j<=num-i;j++)//打印空格
  24. printf(" ");
  25. for(j=1;j<=i;j++)//打印升序字母
  26. printf("%c",64+j);
  27. for(j=j-2;j>=1;j--)//打印降序字母
  28. printf("%c",64+j);
  29. for(j=1;j<=num-i;j++)//打印空格
  30. printf(" ");
  31. printf("\n"); //换行
  32. }
  33. //下面是菱形输出=上正三角+下倒三角******************************************
  34. //上部分,正三角形输出
  35. for(i=1;i<=num;i++)
  36. {
  37. for(j=1;j<=num-i;j++)//打印空格
  38. printf(" ");
  39. for(j=1;j<=i;j++)//打印升序字母
  40. printf("%c",64+j);
  41. for(j=j-2;j>=1;j--)//打印降序字母
  42. printf("%c",64+j);
  43. for(j=1;j<=num-i;j++)//打印空格
  44. printf(" ");
  45. printf("\n"); //换行
  46. }
  47. //下部分,倒三角形输出(比上正三角形少一行)
  48. for(i=num-1;i>=1;i--)
  49. {
  50. for(j=1;j<=num-i;j++)//打印空格
  51. printf(" ");
  52. for(j=1;j<=i;j++)//打印升序字母
  53. printf("%c",64+j);
  54. for(j=j-2;j>=1;j--)//打印降序字母
  55. printf("%c",64+j);
  56. for(j=1;j<=num-i;j++)//打印空格
  57. printf(" ");
  58. printf("\n"); //换行
  59. }
  60. return 0;
  61. }

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1MTAxODg_size_16_color_FFFFFF_t_70

2.编写一个程序,在用户输入一个正整数,产生一个金字塔图案,例如输入4:

  1. 1
  2. 121
  3. 12321
  4. 1234321

C语言代码实现:

  1. #include <stdio.h>
  2. /*
  3. ****1
  4. ***121
  5. **12321
  6. *1234321
  7. */
  8. int main()
  9. {
  10. int tem;
  11. int num,i,j;
  12. printf("输入一个2-9之间的正整数\n");
  13. scanf("%d",&tem);
  14. num = (int)tem; //如果输入浮点型也要变成int型
  15. //三角形输出
  16. for(i=1;i<=num;i++)
  17. {
  18. for(j=1;j<=num-i;j++)//打印空格
  19. printf(" ");
  20. for(j=1;j<=i;j++)//打印升序数字
  21. printf("%d",j);
  22. for(j=j-2;j>=1;j--)//打印降序数字
  23. printf("%d",j);
  24. for(j=1;j<=num-i;j++)//打印空格
  25. printf(" ");
  26. printf("\n"); //换行
  27. }
  28. //下面是菱形输出=上正三角+下倒三角******************************************
  29. //上部分,正三角形输出
  30. for(i=1;i<=num;i++)
  31. {
  32. for(j=1;j<=num-i;j++)//打印空格
  33. printf(" ");
  34. for(j=1;j<=i;j++)//打印升序数字
  35. printf("%d",j);
  36. for(j=j-2;j>=1;j--)//打印降序数字
  37. printf("%d",j);
  38. for(j=1;j<=num-i;j++)//打印空格
  39. printf(" ");
  40. printf("\n"); //换行
  41. }
  42. //下部分,倒三角形输出(比上正三角形少一行)
  43. for(i=num-1;i>=1;i--)
  44. {
  45. for(j=1;j<=num-i;j++)//打印空格
  46. printf(" ");
  47. for(j=1;j<=i;j++)//打印升序数字
  48. printf("%d",j);
  49. for(j=j-2;j>=1;j--)//打印降序数字
  50. printf("%d",j);
  51. for(j=1;j<=num-i;j++)//打印空格
  52. printf(" ");
  53. printf("\n"); //换行
  54. }
  55. return 0;
  56. }

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1MTAxODg_size_16_color_FFFFFF_t_70 1

3.编写一个程序,在用户输入一个正整数,产生一个星星金字塔图案,例如输入5:

  1. *
  2. ***
  3. *****
  4. *******
  5. *********

C语言代码实现:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int tem;
  5. int num,i,j;
  6. printf("输入一个正整数\n");
  7. scanf("%d",&tem);
  8. num = (int)tem; //如果输入浮点型也要变成int型
  9. //三角形输出
  10. for(i=1;i<=num;i++)
  11. {
  12. for(j=1;j<=num-i;j++)//打印空格
  13. printf(" ");
  14. for(j=1;j<=i;j++)//打印升序
  15. printf("*");
  16. for(j=j-2;j>=1;j--)//打印降序
  17. printf("*");
  18. for(j=1;j<=num-i;j++)//打印空格
  19. printf(" ");
  20. printf("\n"); //换行
  21. }
  22. //下面是菱形输出=上正三角+下倒三角******************************************
  23. //上部分,正三角形输出
  24. for(i=1;i<=num;i++)
  25. {
  26. for(j=1;j<=num-i;j++)//打印空格
  27. printf(" ");
  28. for(j=1;j<=i;j++)//打印升序
  29. printf("*");
  30. for(j=j-2;j>=1;j--)//打印降序
  31. printf("*");
  32. for(j=1;j<=num-i;j++)//打印空格
  33. printf(" ");
  34. printf("\n"); //换行
  35. }
  36. //下部分,倒三角形输出(比上正三角形少一行)
  37. for(i=num-1;i>=1;i--)
  38. {
  39. for(j=1;j<=num-i;j++)//打印空格
  40. printf(" ");
  41. for(j=1;j<=i;j++)//打印升序
  42. printf("*");
  43. for(j=j-2;j>=1;j--)//打印降序
  44. printf("*");
  45. for(j=1;j<=num-i;j++)//打印空格
  46. printf(" ");
  47. printf("\n"); //换行
  48. }
  49. return 0;
  50. }

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1MTAxODg_size_16_color_FFFFFF_t_70 2

发表评论

表情:
评论列表 (有 0 条评论,453人围观)

还没有评论,来说两句吧...

相关阅读