Đề bài
In hình trái tim với tên ở trung tâm, dùng vòng lặp for. Người dùng nhập tên và số hàng.
Thuật toán
- Khai báo biến, đọc tên và số hàng.
- Tính độ dài tên.
- In phần trên của trái tim (hai nửa hình elip).
- In phần dưới (tam giác ngược) và chèn tên ở hàng giữa.
Chương trình C
#include <stdio.h>
#include <string.h>
int main() {
int i, j, n;
char name[50];
int len;
printf("Nhập tên của bạn: ");
gets(name);
printf("Nhập số hàng: ");
scanf("%d", &n);
len = strlen(name);
// Phần trên
for (i = n/2; i <= n; i += 2) {
for (j = 1; j < n-i; j += 2) printf(" ");
for (j = 1; j <= i; j++) printf("*");
for (j = 1; j <= n-i; j++) printf(" ");
for (j = 1; j <= i; j++) printf("*");
printf("\n");
}
// Phần dưới + tên
for (i = n; i >= 1; i--) {
for (j = i; j < n; j++) printf(" ");
if (i == n) {
for (j = 1; j <= (n*2 - len)/2; j++) printf("*");
printf("%s", name);
for (j = 1; j < (n*2 - len)/2; j++) printf("*");
} else {
for (j = 1; j <= (i*2)-1; j++) printf("*");
}
printf("\n");
}
return 0;
}
Kết quả
Nhập tên: Tutorials Point
Nhập số hàng: 10
***** *****
******* *******
********* *********
**Tutorials Point**
*****************
***************
*************
***********
*********
*******
*****
***
*