黑马程序员技术交流社区
标题:
打印杨辉三角的代码分享
[打印本页]
作者:
wslinke
时间:
2015-4-18 23:22
标题:
打印杨辉三角的代码分享
#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;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2