输出菱形图形,用c++编写
时间: 2023-04-02 19:03:35 浏览: 240
下面是用 C 语言编写的菱形图形输出代码:
```
#include <stdio.h>
int main()
{
int i, j, k;
for (i = 0; i < 4; i++)
{
for (k = 0; k < 3 - i; k++)
printf(" ");
for (j = 0; j < 2 * i + 1; j++)
printf("*");
printf("\n");
}
for (i = 3; i >= 0; i--)
{
for (k = 0; k < 3 - i; k++)
printf(" ");
for (j = 0; j < 2 * i + 1; j++)
printf("*");
printf("\n");
}
return 0;
}
```
这段代码会在屏幕上输出一个菱形图形。
首先,我们使用两个 for 循环来输出菱形的上半部分和下半部分。在每一行中,我们使用一个循环来输出空格,再使用一个循环来输出星号。
在这段代码中,我们使用了一个变量 k 来输出空格,以使菱形看起来对称。
如果你想调整菱形的大小,可以修改第一个 for 循环的循环次数,或者修改循环中输出的空格和星号的数量。
相关问题
用*输出各种图形(c++版)(正方形,正三角形,倒三角形,菱形)
在C++中,我们可以使用循环结构以及控制台输出字符来绘制各种简单的图形。下面是一些基本示例:
1. **正方形**:
```cpp
#include <iostream>
void printSquare(int size) {
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
std::cout << '*';
}
std::cout << '\n';
}
}
int main() {
int squareSize;
std::cout << "请输入正方形边长: ";
std::cin >> squareSize;
printSquare(squareSize);
return 0;
}
```
2. **正三角形**:
```cpp
void printTriangle(int size) {
for (int i = 0; i < size; ++i) {
for (int j = size - i; j > 0; --j) {
std::cout << ' ';
}
for (int k = 0; k <= i; ++k) {
std::cout << '*';
}
std::cout << '\n';
}
}
// ...同理,其他图形也可以类似编写
```
3. **倒三角形**:
```cpp
void printInvertedTriangle(int size) {
for (int i = size; i >= 0; --i) {
for (int j = size - i; j > 0; --j) {
std::cout << ' ';
}
for (int k = 0; k < i; ++k) {
std::cout << '*';
}
std::cout << '\n';
}
}
4. **菱形**:
```cpp
void printDiamond(int size) {
// 上半部分
for (int i = 0; i < size; ++i) {
if (i <= size / 2) {
for (int j = 0; j < size - 2 * i; ++j) {
std::cout << ' ';
}
for (int k = 0; k <= i; ++k) {
std::cout << '*';
}
std::cout << '\n';
} else {
for (int j = 0; j < size - 2 * (size - i); ++j) {
std::cout << ' ';
}
for (int k = 0; k < size - i; ++k) {
std::cout << '*';
}
std::cout << '\n';
}
}
// 下半部分
for (int i = size - 1; i >= 0; --i) {
if (i < size / 2) {
for (int j = 0; j < size - 2 * i; ++j) {
std::cout << ' ';
}
for (int k = 0; k <= i; ++k) {
std::cout << '*';
}
std::cout << '\n';
}
}
}
// ...以上每个函数后添加类似main函数的调用
```
如何使用C++编写一系列可定制参数的函数来分别实现不同形状(如直角三角形、等腰三角形、矩形、平行四边形和菱形)的图形输出,并允许用户根据需求调整图形的尺寸(即长度和宽度)?
在C++中,你可以定义一系列模板函数,利用模板元编程或者直接针对每种图形类型提供不同的实现。这里是一个简单的例子,展示了如何使用模板来创建可定制参数的函数来绘制基本形状:
```cpp
#include <iostream>
// 函数模板,接受图形尺寸和类型作为参数
template <typename Shape, typename Size>
void drawShape(const Size& size) {
switch (Shape::shapeType) {
case 'T': // 直角三角形
std::cout << "\nDrawing a right triangle of size: ";
for (int i = 0; i <= size.width; ++i) {
for (int j = 0; j <= i; ++j) {
std::cout << '*';
}
std::cout << '\n';
}
break;
case 'I': // 等腰三角形
std::cout << "\nDrawing an isosceles triangle of size: ";
for (int i = 0; i < size.height / 2; ++i) {
for (int j = 0; j <= i; ++j) {
std::cout << '*';
}
std::cout << '\n';
}
break;
case 'R': // 矩形
std::cout << "\nDrawing a rectangle of size: ";
for (int i = 0; i < size.height; ++i) {
for (int j = 0; j < size.width; ++j) {
std::cout << '*';
}
std::cout << '\n';
}
break;
case 'P': // 平行四边形
std::cout << "\nDrawing a parallelogram of size: ";
for (int i = 0; i < size.height; ++i) {
for (int j = 0; j < size.width - 1; ++j) {
std::cout << '*';
}
std::cout << ' ' << '*' << '\n';
}
break;
case 'D': // 菱形
std::cout << "\nDrawing a rhombus of size: ";
for (int i = 0; i < size.height; ++i) {
for (int j = 0; j <= i; ++j) {
std::cout << '*';
}
std::cout << '\n';
}
break;
default:
throw std::invalid_argument("Invalid shape type.");
}
}
// 类模板定义形状类型和尺寸
class Shape {
public:
enum class ShapeType { RIGHT_TRIANGLE, ISOSCELES_TRIANGLE, RECTANGLE, PARALLELOGRAM, RHOMBUS };
static const char* shapeTypeToChar();
private:
int width;
int height;
};
// 实现Shape的类型转换
const char* Shape::shapeTypeToChar() {
switch (ShapeType) {
case ShapeType::RIGHT_TRIANGLE:
return "T";
case ShapeType::ISOSCELES_TRIANGLE:
return "I";
case ShapeType::RECTANGLE:
return "R";
case ShapeType::PARALLELOGRAM:
return "P";
case ShapeType::RHOMBUS:
return "D";
}
}
int main() {
Shape sizes[] = { {5, 3}, {4, 6}, {6, 8} }; // 示例尺寸
for (auto size : sizes) {
drawShape<Shape::RECTANGLE>(size);
drawShape<Shape::RIGHT_TRIANGLE>(size);
// 其他形状替换为Shape::ISOSCELES_TRIANGLE, Shape::PARALLELOGRAM, 或 Shape::RHOMBUS
}
return 0;
}
```
在这个例子中,`drawShape`函数接受一个`Shape`类型的模板参数,通过枚举值来区分不同的形状类型。`main`函数中实例化了几组不同的尺寸并调用了相应的函数。
阅读全文