四、題目:格仔中輸出
這是一道填空題
stringingrid函式會在乙個指定大小的格仔中列印指定的字串。
要求字串在水平、垂直兩個方向上都居中。
如果字串太長,就截斷。
如果不能恰好居中,可以稍稍偏左或者偏上一點。
下面的程式實現這個邏輯,請填寫劃線部分缺少的**。
#include
#include
void stringingrid(int width, int height, const char* s)
目標執行結果
分析思路:
遇到填空題目我一般是先把**在軟體上執行一下,把需要填空的那一行先注釋了。看看與問題條件差什麼,再讀**。
stringingrid(20,6,「abcd1234」);
%*s的含義:printf("%*s",10,s);意思是輸出字串s,但至少佔10個位置,不足的在字串s左邊補空格,這裡等同於printf("%10s",s);/
#include
#include
void
stringingrid
(int width,
int height,
const
char
* s)
printf
("|");
//printf("%*s%s%*s",(width-strlen(buf)-2)/2,"",buf,(width-strlen(buf)-2)/2,""); //填空
printf
("|\n");
for(k=
(height-1)
/2+1
; k1; k++
)printf
("+");
for(i=
0;i2;i++
)printf
("-");
printf
("+\n");
}int
main()
執行結果
所以這裡要輸入的應該是寬度,前面有字串的複製 strcpy(buf, s);
所以填空那一行應該是整行的長度減去字串的長度,然後再除以2;
所以答案為:printf("%*s%s%*s",(width-strlen(buf)-2)/2,"",buf,(width-strlen(buf)-2)/2,"");
藍橋杯 格仔中輸出
參考 格仔中輸出 stringingrid函式會在乙個指定大小的格仔中列印指定的字串。要求字串在水平 垂直兩個方向上都居中。如果字串太長,就截斷。如果不能恰好居中,可以稍稍偏左或者偏上一點。下面的程式實現這個邏輯,請填寫劃線部分缺少的 如圖 include include void stringin...
格仔中輸出 藍橋杯
格仔中輸出 stringingrid方法會在乙個指定大小的格仔中列印指定的字串。要求字串在水平 垂直兩個方向上都居中。如果字串太長,就截斷。如果不能恰好居中,可以稍稍偏左或者偏上一點。下面的程式實現這個邏輯,請填寫劃線部分缺少的 public static void stringingrid int...
藍橋杯 格仔中輸出
格仔中輸出 stringingrid函式會在乙個指定大小的格仔中列印指定的字串。要求字串在水平 垂直兩個方向上都居中。如果字串太長,就截斷。如果不能恰好居中,可以稍稍偏左或者偏上一點。下面的程式實現這個邏輯,請填寫劃線部分缺少的 include include void stringingrid i...