酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++ 实现:输入 n 和 k 输出带指定间隔的 2*n - 1 行同心菱形图形

以下是使用 C++ 实现输出 2*n - 1 行的同心菱形图形的代码,根据输入的 k 值决定菱形之间的间隔: ```cpp #include <iostream> void printDiamond(int n, int k) { // 输出上半部分菱形 for (int i = 1; i <= n; i++) { // 输出空格 for (int j = 1; j <= n - i; j++) { std::cout << " "; } // 输出星号 for (int j = 1; j <= 2 * i - 1; j++) { std::cout << "*"; } std::cout << std::endl; } // 输出下半部分菱形 for (int i = n - 1; i >= 1; i--) { // 输出空格 for (int j = 1; j <= n - i; j++) { std::cout << " "; } // 输出星号 for (int j = 1; j <= 2 * i - 1; j++) { std::cout << "*"; } std::cout << std::endl; } // 输出间隔 for (int i = 0; i < k; i++) { std::cout << std::endl; } // 再次输出上半部分菱形 for (int i = 1; i <= n; i++) { // 输出空格 for (int j = 1; j <= n - i; j++) { std::cout << " "; } // 输出星号 for (int j = 1; j <= 2 * i - 1; j++) { std::cout << "*"; } std::cout << std::endl; } // 再次输出下半部分菱形 for (int i = n - 1; i >= 1; i--) { // 输出空格 for (int j = 1; j <= n - i; j++) { std::cout << " "; } // 输出星号 for (int j = 1; j <= 2 * i - 1; j++) { std::cout << "*"; } std::cout << std::endl; } } int main() { int n, k; std::cout << "请输入 n 的值: "; std::cin >> n; std::cout << "请输入 k 的值: "; std::cin >> k; printDiamond(n, k); return 0; } ``` 额外注意逻辑点: 1. 注意输入 n 和 k 的值的有效性,例如不能为负数。 2. 考虑代码的可扩展性,如果需要修改菱形的形状或间隔的方式,能否方便修改。 3. 注意输出的格式是否符合预期,特别是空格和星号的数量。 ######[AI写代码神器 | 707点数解答 | 2025-03-10 19:51:16]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]