用“C plus plus”语言编写边长为10个*的空心三角形,要求可以出现在指定位置。
时间: 2023-05-24 12:07:14 浏览: 62
这是一种可能的实现方式:
```cpp
#include <iostream>
using namespace std;
int main() {
int posX, posY; // 指定位置的横、纵坐标
cout << "请输入三角形左上角的位置(用空格隔开):";
cin >> posX >> posY;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (i == 0 || j == 0 || i == j) {
if (i + posY < 0 || i + posY >= 20 || j + posX < 0 || j + posX >= 20) {
cout << ' ';
} else {
cout << '*';
}
} else {
cout << ' ';
}
}
cout << endl;
}
return 0;
}
```
解释一下这个代码:
首先接受用户输入的指定位置,这里采用了简单的命令行交互方式,让用户输入两个数字作为横纵坐标。
然后用两个嵌套的 for 循环,遍历三角形的每一个位置。每次遍历,都检查当前位置是否在左上至右下的对角线、或在最左列或最上行(即边界),如果是,则输出一个星号,否则输出一个空格。
其中需要注意的是,输出时需要将位置的坐标加上用户指定的偏移量,这样才能让三角形出现在指定位置。同时也要判断输出位置是否超出了整个输出区域,超出则输出一个空格。
这种实现方式虽然稍显复杂,但可以灵活地处理不同的输入和输出位置,适用性比较广。当然,如果只需在屏幕中央输出一个边长为10的实心三角形,那就不需要这么麻烦了,可以直接按照正常的方式输出即可。