使用 for 迴圈在心型圖案中列印名字的 C 程式。
問題
編寫一個程式,使用 for 迴圈列印心形圖案,並在中心列印姓名。
解決方案
使用者必須輸入要列印在中心的姓名以及要列印星星的行數。
演算法
參考以下演算法,透過 for 迴圈在心形圖案中列印姓名。
步驟 1 − 宣告變數。
步驟 2 − 在執行時讀取要在中心列印的姓名。
步驟 3 − 讀取行數。
步驟 4 − 找出姓名的長度。
步驟 5 − 列印心形的上半部分。
步驟 6 − 列印心形的下半部分。
步驟 7 − 在螢幕上列印姓名。
示例
以下是用 for 迴圈在心形圖案中列印姓名的 C 程式 −
#include <stdio.h>
#include <string.h>
int main(){
int i, j, n;
char name[50];
int len;
printf("Enter your name: ");
gets(name);
printf("Enter no of rows: ");
scanf("%d", &n);
len = strlen(name);
// Print upper part of the heart shape with stars
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("
");
}
// Prints lower triangular part with stars
for(i=n; i>=1; i--){
for(j=i; j<n; j++){
printf(" ");
}
// Print the name on screen
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("
");
}
return 0;
}輸出
當執行以上程式時,它將產生以下輸出 −
Enter your name: Tutorials POint Enter no of rows: 10 ***** ***** ******* ******* ********* ********* **Tutorials POint* ***************** *************** ************* *********** ********* ******* ***** *** *
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP