数字金字塔是初学者练习循环语句的经典题目之一,下面从多个方面讲解如何编写程序输出数字金字塔。
一、循环语句的基本使用
循环语句是编写数字金字塔的基础,以下为C语言的for循环语句示例:
#include<stdio.h> int main() { int i, j, n = 5; for(i = 1; i <= n; i++)//外层循环控制行数 { for(j = 1; j <= i; j++)//内层循环控制列数 { printf("%d ", j); } printf("n"); } return 0; }
以上程序可以输出如下图所示的数字金字塔:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
二、多种数字金字塔的输出方式
1、空格对齐的数字金字塔
对于以下的程序,可以输出数字金字塔并保证输出的数字对齐:
#include<stdio.h> int main() { int i, j, n = 5; for(i = 1; i <= n; i++) { for(j = 1; j <= n-i; j++) { printf(" "); } for(j = 1; j <= 2*i-1; j++) { printf("%d", j); } printf("n"); } return 0; }
以上程序可以输出如下图所示的数字金字塔:
1 123 12345 1234567 123456789
2、带空格的数字金字塔
以下程序可以输出带空格的数字金字塔:
#include<stdio.h> int main() { int i, j, n = 5; for(i = 1; i <= n; i++) { for(j = 1; j <= n-i; j++) { printf(" "); } for(j = 1; j <= i; j++) { printf("%d ", j); } printf("n"); } return 0; }
以上程序可以输出如下图所示的数字金字塔:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
三、数字金字塔的扩展应用
数字金字塔可以扩展为其他形式,以下是几个扩展应用的示例:
1、字母金字塔
以下程序可以输出字母金字塔:
#include<stdio.h> int main() { int i, j, n = 5; for(i = 1; i <= n; i++) { for(j = 1; j <= n-i; j++) { printf(" "); } for(j = 1; j <= i; j++) { printf("%c ", 64+j); } printf("n"); } return 0; }
以上程序可以输出如下图所示的字母金字塔:
A A B A B C A B C D A B C D E
2、斐波那契数列金字塔
以下程序可以输出斐波那契数列金字塔:
#include<stdio.h> int main() { int i, j, n = 5, a = 0, b = 1, c; for(i = 1; i <= n; i++) { for(j = 1; j <= n-i; j++) { printf(" "); } for(j = 1; j <= i; j++) { printf("%d ", a); c = a + b; a = b; b = c; } printf("n"); } return 0; }
以上程序可以输出如下图所示的斐波那契数列金字塔:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
总结
通过以上的代码示例,我们可以看到数字金字塔的不同形式以及不同的应用、扩展。如何编写程序输出数字金字塔需要我们对循环语句的掌握,以及对数字金字塔不同形式的理解和变换。希望本文对初学者有所帮助。