Show
#include <stdio.h> int main() { int x = 0,y = 0; unsigned int size = 0; char name[50] = {0}; unsigned int len = 0; printf("Enter the size = "); scanf("%u",&size); fflush(stdin); //Ask name printf("Enter the size = "); fgets(name,size,stdin); len = strlen(name); for(x=(size/2); x<=size; x+=2) { for(y=1; y<(size-x); y+=2) { printf(" "); } for(y=1; y<=x; ++y) { printf("*"); } for(y=1; y<=(size-x); ++y) { printf(" "); } for(y=1; y<=x; ++y) { printf("*"); } printf("\n"); } for(x=size; x>=1; --x) { for(y=x; y<size; ++y) { printf(" "); } if(x == size) { for(y=1; y<=((size * 2)-len)/2; ++y) { printf("*"); } fputs(name,stdout); for(y=((size * 2)-len)/2; y< size; ++y) { printf("*"); } } else { for(y=1; y<=(x*2)-1; ++y) { printf("*"); } } printf("\n"); } return 0; } đầu ra Ở đây, một lưới có 7 hàng và 6 cột được hình thành. Chỉ mục của mỗi hàng được đề cập ở trên cùng trong khi chỉ mục của mỗi cột được đề cập ở bên trái 01234560****1***2**3**4**5*Có nhiều cách để tạo mẫu này. Tuy nhiên, chúng tôi sẽ tạo mẫu này bằng cách chia nó thành 4 phần. - Phần 1 và phần 2 lần lượt bao gồm cột 0 và cột 1 Phần thứ 3 là diện tích từ hàng 0 đến hàng 3 và từ cột 1 trở đi Phần thứ 4 thể hiện diện tích từ hàng 3 đến hàng 6 và từ cột 1 trở đi Ghi chú. -Nếu muốn bạn có thể bỏ hàng 2. Điều này cũng sẽ dẫn đến một mô hình trái tim tương tự Viết Code cho các phần khác nhau của PatternỞ Hàng 0, dấu ‘*’ được in ở cột 1, cột 2, cột 4 và cột 5. Vì vậy, mã cho phần 1 sẽ là. - if(row==0 and col%3!=0): #Here col represents column print('*') Điều kiện cho Hàng 1 ngược lại với Hàng 0. Trong đó, chỉ có cột 0,3 và 6 là có dấu ‘*’ Vì vậy, mã cho phần 2 sẽ là. - if row ==1 and col%3==0: print('*') Trong phần thứ ba, vị trí được đánh dấu là. - Có thể nhận thấy rằng '*' có sẵn tại các vị trí trong phần 3 nơi hiệu số của hàng và cột là 2 Vì vậy, mã cho phần thứ 3 sẽ là. - if row-col==2: print('*') Trong phần thứ tư, các vị trí được đánh dấu là. - '*' được in khi tổng của hàng không. và cột không. bằng 8 Mã cho phần thứ 4 sẽ là. - if row+col==8: print('*') **Trường hợp dấu sao không được in, khoảng trắng được cung cấp thông qua điều kiện khác Vì vậy, toàn bộ mã cho điều này sẽ là. - Triển khai bằng Python. -for row in range(6):#To iterate over 6 rows available for col in range(7):#Here we have 7 columns if row==0 and col%3!=0 or row==1 and col%3==0 or row-col==2 or row+col==8: #The condition discussed above. #Here we join all 4 conditions using or print('*',end="")#Here end=" " is used to avoid python from going to new line.By giving a space after each character we will create original heart pattern. else: print(" ",end=" ")#To give empty space print()#After each over we will print a new line đầu ra. -* * * * * * * * * * * * * * Sử dụng danh sách hiểu. -Chúng ta có thể tạo toàn bộ danh sách 2d bằng cách sử dụng khả năng hiểu danh sách. Mã cho danh sách này sẽ là. - heart=[["*" if row==0 and col%3!=0 or row==1 and col%3==0 or row-col==2 or row+col==8 else " " for col in range(7)] for row in range(6)] Danh sách được tạo ở trên có thể được in bằng cách sử dụng một lớp lót để in ma trận 2d. Mã cho điều này là. - ________số 8Nếu muốn, chúng ta cũng có thể nối cả hai lớp lót để tạo một lớp lót duy nhất. Một lớp lót để in hoa văn trái timprint('\n'.join(' '.join(*zip(*row)) for row in ([["*" if row==0 and col%3!=0 or row==1 and col%3==0 or row-col==2 or row+col==8 else " " for col in range(7)] for row in range(6)]))) Nếu muốn chúng ta có thể thay ký tự ‘*’ bằng ký tự Unicode cho biểu tượng trái tim, tôi. e. , \u2665 Và đầu ra cuối cùng của chúng tôi sẽ là. - if(row==0 and col%3!=0): #Here col represents column print('*')0 Nếu muốn, bạn có thể thay đổi đoạn mã trên để tạo một số mẫu mới, chẳng hạn như lấp đầy khoảng trống bằng biểu tượng trái tim hoặc thứ gì đó tương tự Viết đề xuất của bạn trong Nhận xét Bài viết mà bạn có thể thích
|