格仔中輸出
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...