藍橋杯 格仔輸出

2021-07-30 03:44:58 字數 721 閱讀 3398

格仔中輸出

stringingrid函式會在乙個指定大小的格仔中列印指定的字串。

要求字串在水平、垂直兩個方向上都居中。

如果字串太長,就截斷。

如果不能恰好居中,可以稍稍偏左或者偏上一點。

下面的程式實現這個邏輯,請填寫劃線部分缺少的**。

有些童鞋可能知道scanf裡用*修飾符,是起到過濾讀入的作用。比如乙個有三列數值的資料,我只想得到第2列數值,可以在迴圈裡用scanf(「%*d%d%*d」, a[i])來讀入第i行的第2個數值到a[i]。 

* 修飾符在printf中的含義完全不同。如果寫成printf(「%6d」, 123),很多童鞋應該就不會陌生了,這是設定域寬的意思。同理,%6s也是域寬。* 修飾符正是用來更靈活的控制域寬。使用%*s,表示這裡的具體域寬值由後面的實參決定,如printf(「%*s」, 6, 「abc」)就是把」abc」放到在域寬為6的空間中右對齊。 

明白了 * 是用變數來控制域寬,那麼這題就簡單了,這裡應該填寫5個實參。然後字元長度的計算應該用buf而不是s,因為buf才是截斷後的長度,用s的話,如果s長度超過了width-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...