动态数组中的值可以通过索引来修改。在你的代码中,使用`array = 1;`尝试给数组元素赋值是不正确的。
首先,你需要为动态数组分配内存空间。在你的代码中,你已经为动态数组分配了内存空间,但是只有一个数组元素,并没有给它分配足够的内存空间。
所以,首先要修改的地方是:将`int* array = new int();`改为`int* array = new int[i];`,这样就能为动态数组分配`i`个整数的内存空间。
然后,你可以使用数组索引来给数组赋值。例如,`array[0] = 1;`和`array[1] = 1;`可以分别给数组的第一个和第二个元素赋值为1.
最后,你需要在循环结束之前,使用`delete[] array`释放动态数组占用的内存空间。
下面是修改后的完整代码:
- #include <iostream>
- using namespace std;
- //打印帕斯卡三角形
- int main()
- {
- int i;
- cout << "请输入行数: ";
- cin >> i;
- int* array = new int[i];//动态数组,记得要释放掉内存
- for (int k = 0; k < i; k++)
- {
- //左右边界赋初值1
- array[0] = 1;
- array[k] = 1;
- //打印格式
- for (int l = 1; l < i -k; l++)
- {
- cout << " ";
- }
- //计算并打印中间的数值
- for (int j = 1; j < k; j++)
- {
- array[j] = array[j-1] + array[j];
- }
- for (int j = 0; j <= k; j++)
- {
- cout << array[j] << " ";
- }
- cout << endl;
- }
- delete[] array; // 释放内存
- return 0;
- }
复制代码
现在你应该能够正确地打印出帕斯卡三角形了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。