Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In mẫu tam giác đối xứng kép trong C

Bài toán

In hình tam giác đối xứng kép với ký tự 'x' và 'o' xen kẽ, cho số dòng n.

Ví dụ n=5

      x         x
     o x       o x
    x o x     x o x
   x o x o   x o x o
 x o x o x o x o x o x
   x o x o   x o x o
    x o x     x o x
     o x       o x
      x         x

Cấu trúc

  • Nửa trên: n-1 dòng (lẻ) hoặc n-2 (chẵn)
  • Giữa: 1 dòng (lẻ) hoặc 3 dòng (chẵn)
  • Nửa dưới: đối xứng nửa trên

Mã nguồn C (tóm tắt logic chính)

void printx(int n) { // in x o x o... bắt đầu x
    for(i=1;i<=n;i++) printf(i%2?"x ":"o ");
}
void printo(int n) { // in o x o x... bắt đầu o
    for(i=1;i<=n;i++) printf(i%2?"o ":"x ");
}
void printpattern(int n) {
    // Xử lý n chẵn/lẻ riêng biệt cho nửa trên, giữa, nửa dưới
    // Dùng biến p (space), s (số ký tự), q (số ký tự nửa dưới)
    // In khoảng trắng, gọi printx/printo, xuống dòng
}
int main() { printpattern(5); }

Kết quả n=5

    x     x
   o x   o x
  x o x x o x
 x o x o x o x o
x o x o x o x o x
 x o x o x o x o
  x o x x o x
   o x   o x
    x     x