題目:
打印近似楊輝三角,行數(shù)n自選
百度找的楊輝三角,參考一下:
解析:
把它的全部元素左對(duì)齊,就可以看成近似楊輝三角的樣子
1
1? 1
1? 2? 1
1? 3? 3? 1
1? 4? 6? 4? 1
……
?每個(gè)數(shù)等于它上方兩數(shù)之和
每行數(shù)字左右對(duì)稱,由1開(kāi)始逐漸變大
行數(shù)與列數(shù)相同,第n行有n列,首選二維數(shù)組,先給數(shù)組賦值,再打印數(shù)組
先搭元素為1的框架,每行第零列元素為1,每行末列元素為1
再根據(jù)每個(gè)數(shù)等于它上方兩數(shù)之和,給其它元素賦值
邏輯:
先按規(guī)律給二維數(shù)組賦值,再打印所需數(shù)組元素
注意數(shù)組越界問(wèn)題,N=n+2
參考代碼:
// 打印楊輝三角,行數(shù)n自選
// 1
// 1? 1
// 1? 2? 1
// 1? 3? 3? 1
// ……
#define n 7 // n:1~16
#define N n+2
#include<stdio.h>
void init_arr(int arr[N][N])
{
int i = 0;
int j = 0;
for (i = 1; i < N; i++)
{
arr[i][1] = 1; // 每行第1列為1
for (j = 2; j <=i; j++)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
void print_arr(int arr[N][N])
{
int i = 0;
int j = 0;
for (i = 1; i < N; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main()
{
int arr[N][N] = { 0 };
init_arr(arr);
print_arr(arr);
return 0;
}
運(yùn)行結(jié)果:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-796131.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796131.html
到了這里,關(guān)于C練習(xí)——楊輝三角的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!