使用 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* ***************** *************** ************* *********** ********* ******* ***** *** *
廣告