LATEST

In hình tam giác bằng các dấu * trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách in hình tam giác bằng các dấu * trong C / C++. Đây là dạng bài tập giúp các bạn rèn luyện tính tư duy logic và sử dụng vòng lặp trong C / C++.

Để mình đưa ra một ví dụ cho các bạn dễ hình dung nhé. Giả sử mình muốn in ra một hình tam giác vuông cân bằng các dấu sao với chiều cao là 5, khi đó kết quả như sau:

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

Ngoài ra còn có tam giác hình kim tự tháp, hoặc tam giác hình kim tự tháp ngược, ... . Vậy làm thế nào để in hình tam giác bằng cách dấu * trong C / C++ thì hãy bắt đầu ngay cùng mình thôi nhé.

In hình tam giác bằng các dấu * trong C / C++

Trong phần này mình sẽ thực hiện ba ví dụ để in tam giác bằng dấu * trong C / C++. Đầu tiên là chương trình in tam giác vuông cân, hai chương trình sau là in tam giác hình kim tự tháp và kim tự tháp ngược.

In tam giác vuông cân bằng dấu * trong C / C++

Đầu tiên chúng ta sẽ yêu cầu người dùng nhập vào chiều cao h của tam giác. Sau đó sử dụng vòng lặp for để lặp và in các dấu *.

Chương trình C:

#include <stdio.h>

int main(){
  //khai báo nhập vào chiều cao tam giác
  int h;
  printf("Nhập vào chiều cao của tam giác: ");
  scanf("%d", &h);
  for(int i = 1; i <= h; i++) {
    //In dấu *
    for(int j = 1; j <= i; j++) {
      printf("* ");
    }
    //xuống dòng kế tiếp
    printf("\n");
  }
  
  printf("\n-------------------------------\n");
  printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Chương trình C++:

#include <iostream>
using namespace std;

int main(){
  //khai báo nhập vào chiều cao tam giác
  int h;
  cout << "Nhập vào chiều cao của tam giác: ";
  cin >> h;
  for(int i = 1; i <= h; i++) {
    //In dấu *
    for(int j = 1; j <= i; j++) {
      cout << "* ";
    }
    //xuống dòng kế tiếp
    cout << endl;
  }
  
  cout<<"\n-------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai33 01 PNG

In tam giác hình kim tự tháp bằng dấu * trong C / C++

Để in tam giác hình kim tự tháp, ta cần in dấu * và in khoảng trắng. Vì hình kim tự tháp có đỉnh nhọn, vậy nên thay các dấu 8 ở đỉnh bằng khoảng trắng.

Chương trình C:

#include <stdio.h>

int main(){
  //khai báo nhập vào chiều cao tam giác
  int h;
  printf("Nhập vào chiều cao của tam giác: ");
  scanf("%d", &h);
  for(int i = 1; i <= h; i++) { 
    //In khoảng trắng
    for(int j = i; j < h; j++) {
      printf(" ");
    }
    // in dấu *
    for(int j = 1; j <= (2*i-1); j++) {
      printf("*");
    }
    //xuống dòng kế tiếp
    printf("\n");
  }
  
  printf("\n-------------------------------\n");
  printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Chương trình C++:

#include <iostream>
using namespace std;

int main(){
  //khai báo nhập vào chiều cao tam giác
  int h;
  cout << "Nhập vào chiều cao của tam giác: ";
  cin >> h;
  for(int i = 1; i <= h; i++) { 
    //In khoảng trắng
    for(int j = i; j < h; j++) {
      cout << " ";
    }
    // in dấu *
    for(int j = 1; j <= (2*i-1); j++) {
      cout << "*";
    }
    //xuống dòng kế tiếp
    cout << endl;
  }
  
  cout<<"\n-------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai33 02 PNG

In tam giác hình kim tự tháp ngược bằng dấu * trong C / C++

Tương tự như in tam giác hình kim tự tháp, ta cũng xem in đồng thời dấu * và khoảng trắng.

Chương trình C:

#include <stdio.h>

int main(){
  //khai báo nhập vào chiều cao tam giác
  int h;
  printf("Nhập vào chiều cao của tam giác: ");
  scanf("%d", &h);
  for(int i = 1; i <= h; i++) { 
    //In khoảng trắng
    for(int j = 1; j < i; j++) {
      printf(" ");
    }
    // in dấu *
    for(int j = 1; j <= (h * 2 -(2*i-1)); j++) {
      printf("*");
    }
    //xuống dòng kế tiếp
    printf("\n");
  }
  
  printf("\n-------------------------------\n");
  printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Chương trình C++:

#include <iostream>
using namespace std;

int main(){
  //khai báo nhập vào chiều cao tam giác
  int h;
  cout << "Nhập vào chiều cao của tam giác: ";
  cin >> h;
  for(int i = 1; i <= h; i++) { 
    //In khoảng trắng
    for(int j = 1; j < i; j++) {
      cout << " ";
    }
    // in dấu *
    for(int j = 1; j <= (h * 2 -(2*i-1)); j++) {
      cout << "*";
    }
    //xuống dòng kế tiếp
    cout << endl;
  }
  
  cout<<"\n-------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai33 03 PNG

Như vậy là chúng ta dã cùng nhau thực hiện các chương trình in hình tam giác bằng dấu * trong C / C++. Các bạn có thể luyện tập nhiều dạng bài tập hơn tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều !!!

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Top