C语言重新学习不多久写的算法,希望对大家有帮助,评论区欢迎大家留言,点赞,打赏,丢香蕉给我,谢谢
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define length 10//定义输出的行数
int main()
{
int arr[length][length] = { { 0 } };
int j = 0;
int k = 0;
int i = 0;
for (j = 0; j < length; j++) //第一个和最后一个数字置1
{
arr[j][0] = 1;
arr[j][j] = 1;
}
for (j = 2; j < length; j++)//对非第一个和最后一个求值
{
for (k = 1; k < j; k++)
{
arr[j][k] = arr[j - 1][k - 1] + arr[j - 1][k];
}
}
for (j = 0; j < length; j++)//打印
{
while (i < (length - 1))
{
printf(" ");
i++;
}
for (k = 0; k <= j; k++)
{
printf("%-4d", arr[j][k]);//%-6d,以长度为6,左对齐的方式输出
if (j == k)
printf("\n");
}
i = j + 1;
}
return 0;
}
注释:宏定义的length可以更改,输出自己想输出的长度。建议13以下时输出格式给%-4d,代码28处printf()内保持输出两个空格不变;13以上使用-%6d,且printf()中输出应多加一个空格