用C ++打印小屋的程序

在本教程中,我们将讨论一个打印Hut模式的程序。

为此,我们将提供要打印的小屋的宽度(例如N)。我们的任务是使用星号打印给定宽度的小屋结构,并使用线条字符在小屋内部打印门。

示例

#include <iostream>
using namespace std;
//打印给定的小屋结构
int print_hut(int n){
   int i, j, t;
      if (n % 2 == 0) {
         n++;
      }
      for (i = 0; i <= n - n / 3; i++) {
         for (j = 0; j < n; j++) {
            t = 2 * n / 5;
            if (t % 2 != 0) {
               t--;
            }
         //计算距初始位置的距离
         //字符
         //并打印小屋的外边界
         if (i == n / 5
            || i == n - n / 3
            || (j == n - 1 && i >= n / 5)
            || (j >= n / 5 && j < n - n / 5 && i == 0)
            || (j == 0 && i >= n / 5)
            || (j == t && i > n / 5)
            || (i <= n / 5 && (i + j == n / 5 || j - i == n / 5))
            || (j - i == n - n / 5)) {
               cout << "*";
            }
            //打印门的结构
         else if (i == n / 5 + n / 7 && (j >= n / 7 && j <= t - n / 7)) {
            cout << "_";
         }
         else if (i >= n / 5 + n / 7 && (j == n / 7 || j == t - n / 7)) {
            cout << "|";
         }
         else {
            cout << " ";
         }
      }
      cout << "\n";
   }
}
int main(){
   int n = 12;
   print_hut(n);
   return 0;
}

输出结果

 **********
* *         *
*************
*___*       *
*| |*       *
*| |*       *
*| |*       *
*| |*       *
*| |*       *
*************