总结
- 使用 while 循环的时候,自加的边界不能忘了
- memcpy(temp, priTemp, sizeof(priTemp)); 第三个参数是被复制的字节数。
- 文档:https://www.runoob.com/cprogramming/c-function-memcpy.html
思路
- 只需要下一层根据上一层输出就可以了
#include <iostream>
using namespace std;
int main() {
int temp[35] = {0};
int priTemp[35] = {0};
temp[0] = 1;
temp[1] = 2;
temp[2] = 1;
int n;
scanf("%d", &n);
if (n == 1) {
printf("1");
} else if (n == 2) {
printf("1\n1 1");;
} else {
printf("1\n1 1\n1 2 1\n");
for (int i = 3; i < n; ++i) {
int j = 0;
while (*(temp + j) != 0) {
if (j - 1 < 0) {
priTemp[0] = 1;
j++;
} else {
priTemp[j] = temp[j - 1] + *(temp + j);
j++;
}
}
priTemp[j] = 1;
int k = 0;
while (*(priTemp + k) != 0) {
cout << *(priTemp + k);
if (*(priTemp + k + 1) != 0) {
cout << " ";
}
k++;
}
cout << endl;
memcpy(temp, priTemp, sizeof(priTemp));
}
}
return 0;
};
来源:CSDN
作者:彩虹编程
链接:https://blog.csdn.net/Mac_Jie/article/details/104536320