Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình in kim tự tháp rỗng và mô hình kim cương

Ở đây, chúng ta sẽ xem cách tạo các mẫu kim tự tháp rỗng và kim cương bằng cách sử dụng C. Chúng ta có thể tạo các mẫu Kim tự tháp đặc rất dễ dàng. Để làm cho nó trở nên rỗng, chúng ta phải thêm một số thủ thuật.

Kim tự tháp rỗng

Đối với kim tự tháp ở dòng đầu tiên nó sẽ in một ngôi sao và ở dòng cuối cùng nó sẽ in n số ngôi sao. Đối với các dòng khác, nó sẽ in chính xác hai dấu sao ở đầu và cuối dòng, và sẽ có một số khoảng trống giữa hai dấu bắt đầu này.

Mã mẫu

#include <stdio.h>
int main() {
   int n, i, j;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   for(i = 1; i<=n; i++) {
      for(j = 1; j<=(n-i); j++){ //print the blank spaces before star
         printf(" ");
      }
      if(i == 1 || i == n){ //for the first and last line, print the
         stars continuously
         for(j = 1; j<=i; j++) {
            printf("* ");
         }
      } else {
         printf("*"); //in each line star at start and end
         position
         for(j = 1; j<=2*i-3; j++) { //print space to make hollow
            printf(" ");
         }
         printf("*");
      }
      printf("\n");
   }
}

Đầu ra

Enter number of lines: 20
                                         *
                                       *   *
                                      *     *
                                     *       *
                                    *         *
                                   *           *
                                  *             *
                                 *               *
                                *                 *
                               *                   *
                              *                     *
                             *                       *
                            *                         *
                           *                           *
                          *                             *
                         *                               *
                        *                                 *
                       *                                   *
                      *                                     *
                     * * * * * * * * * * * * * * * *  * * *  * 

Kim cương rỗng

Đối với viên kim cương ở dòng đầu tiên và ở dòng cuối cùng, nó sẽ in một ngôi sao. Đối với các dòng khác, nó sẽ in chính xác hai ngôi sao ở đầu và cuối dòng, và sẽ có một số khoảng trống giữa hai dấu bắt đầu này. Kim cương có hai phần. Nửa trên và nửa dưới. Ở nửa trên, chúng ta phải tăng số lượng khoảng trắng và ở nửa dưới, chúng tôi phải giảm số lượng khoảng trắng. Ở đây, số dòng có thể được chia thành hai phần bằng cách sử dụng một biến khác có tên là mid.

Mã mẫu

#include <stdio.h>
int main() {
   int n, i, j, mid;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   if(n %2 == 1) { //when n is odd, increase it by 1 to make it even
      n++;
}
mid = (n/2);
for(i = 1; i<= mid; i++) {
    for(j = 1; j<=(mid-i); j++){ //print the blank spaces before star
      printf(" ");
    }
    if(i == 1) {
      printf("*");
    } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*i-3; j++){ //print space to make hollow
          printf(" ");
      }
      printf("*");
    }
    printf("\n");
}
for(i = mid+1; i<n; i++) {
   for(j = 1; j<=i-mid; j++) { //print the blank spaces before star
      printf(" ");
   }
   if(i == n-1) {
      printf("*");
   } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*(n - i)-3; j++) { //print space to make
        hollow
        printf(" ");
      }
      printf("*");
   }
   printf("\n");
}

Đầu ra

Enter number of lines: 15
                      *
                    *   *
                  *       *
                 *         *
                *           *
               *             *
              *               *
             *                 *
              *               *
               *             *
                *           *
                 *         *
                   *     *
                    *   *
                      *