از این شکل ها ! (ساخت شکل X با حقله در c++ )

یکی از جالب ترین مسائل برنامه نویسی ابتدایی در زمان یاد گیری حلقه های for پرینت کردن اشکال هندسی به وسیله اوناس.

یعنی به طور مثال برنامه ای بنویسیم که شکل یه درخت کاج رو بسازه و پرینت کنه.

سوال :‌ برنامه ای بنوسید که شکل زیر را به کمک کاراکتر ستاره (*) در خروجی نمایش دهد.

ورودی : در خط اول تعداد کاراکتر ها در نصف شکل وارد می شود.

خروجی : شکل X

مثال :‌

ورودی :‌ ۵

خروجی ‌:

* * * * * * * * * * * * * * * * * * * * *

پیاده سازی :

رویکرد :‌ چون سوال ازمون خواسته که به ازای عدد ۵ یه شکل ۱۱ خطی نمایش بده، بهترین رویکرد اینه که اول یه مثلث افقی ( که یکی از اضلاع شو نمایش نمیدیم ) رو پرینت کنیم، بعد یه * بذاریم و همین شکلو برعکس کنیم و دوباره پیاده کنیم.

پس :‌

#include <stdio.h>


int main() {
  int n;
  scanf("%d", &n);
  int x = 0;
  for (int j = 0; j < n; j++) {
    for (int i = 0; i <= j; i++)
      printf(" ");
    printf("*");
    for (x = (n - j) * 2; x > 1; x--)
      printf(" ");
    printf("*\n");
  }
  printf("%*s *", n , " ");
  printf("\n");

  for (int j = n - 1; j >= 0; j--) {
    for (int i = 0; i <= j; i++)
      printf(" ");
    printf("*");
    for (x = (n - j) * 2; x > 1; x--)
      printf(" ");
    printf("*\n");
  }
  return 0;
}