2015C藍橋杯C A 格仔中輸出(詳細講解)

2021-10-04 05:35:37 字數 1919 閱讀 2869

四、題目:格仔中輸出

這是一道填空題

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...