- #include <stdio.h>
- #define kLines 10 //行数
- int main(int argc, const char * argv[]) {
-
- //定义两个int数组,preLine存放上一行数据,currentLine存放当前行数据
-
- int preLine[kLines]={1},currentLine[kLines]={0};
-
- //row代表行号,输出10行
- for (int row = 1; row <= kLines; row++) {
-
- //输出每行第一个数字之前的空格
- for (int k = 0; k < kLines-row; k++) {
- printf(" "); //如果行数多了,数字大了就可以调整这里
- }
-
- //输出当前行的数字,第row行有row个数字
- for (int j = 0; j < row; j++) {
- //将第一个数字和最后一个数字设置为1
- if(j == 0 || j == row-1)
- {
- currentLine[j] = 1;
- }
- else //将除了首尾以外的第j个数字,赋值为上一行第j-1个,第j个数字的和
- currentLine[j] = preLine[j-1]+preLine[j];
- //打印这个数字
- printf("%-4d",currentLine[j]); //如果行数多了,数字大了就可以调整这里
- }
-
- //输出完一行,将这行数据保存到preLine数组,以便下一行计算
- for (int j = 0; j < row; j++) {
- preLine[j] = currentLine[j];
- }
-
- //每打印一行数字后换行
- printf("\n");
- }
- return 0;
- }
复制代码 |