【题目】C++:根据用户输入的数值,打印杨辉三角形。

    xiaoxiao2022-07-03  104

    文件名:[作业]作者:〈漆黑〉描述:〈 程序设计:根据用户输入的数值,打印杨辉三角形。 〉创建时间:2019.5.22 /**************************** * 文件名:[作业] * 作者:〈漆黑〉 * 描述:〈 程序设计:根据用户输入的数值,打印杨辉三角形。 〉 * 创建时间:2019.5.22 ****************************/ #include <iostream> #include <iomanip> using namespace std; int main(void) { int length;//length存储杨辉三角的大小 cout << "请输入杨辉三角的大小:"; while (!(cin >> length)) { cout << "输入错误,请重新输入:"; cin.clear();//清除cin的错误信息 cin.ignore(1024, '\n');//清除cin的内容 } /* 动态创建二维数组 */ int** nums = new int* [length]; for (int i = 0; i < length; i++) { nums[i] = new int[length]; } /* 计算杨辉三角,i控制行,j控制列 */ int i, j; for (i = 0; i < length; i++) { nums[i][0] = 1; nums[i][i] = 1; for (j = 1; j < i; j++) nums[i][j] = nums[i - 1][j - 1] + nums[i - 1][j];//杨辉三角每个数都是其左上和右上数字之和 } /* 打印输出,i控制行,j控制列 */ for (i = 0; i < length; i++) { for (j = 0; j < length - i - 1; j++)//打印一行的前导空格 cout << setw(3) << " ";//setw(3), 设置域宽为3,用空格填充 for (j = 0; j <= i; j++) cout << setw(6) << nums[i][j];//setw(6), 设置域宽为6,nums[i][j]居最右,其他用空格填充 cout << endl;//打印完一行换行 } /* 删除二维数组 */ for (int l = 0; l < length; l++) { delete[] nums[l]; } delete[] nums; }
    最新回复(0)