參考:
格仔中輸出
stringingrid函式會在乙個指定大小的格仔中列印指定的字串。
要求字串在水平、垂直兩個方向上都居中。
如果字串太長,就截斷。
如果不能恰好居中,可以稍稍偏左或者偏上一點。
下面的程式實現這個邏輯,請填寫劃線部分缺少的**。
如圖:
#include
#include
void stringingrid(int width, int height, const char* s)
printf("|");
printf("%*s%s%*s",(width-strlen(s)-2)/2," ",s,(width-strlen(s)-1)/2," ");
//填空
printf("|\n");
for(k=(height-1)/2+1; k
printf("|");
for(i=0;i
printf("|\n");
}printf("+");
for(i=0;i
printf("+\n");
}int main()
個人理解,就是要控制這個字串在中間輸出。因為這兩行兩邊有兩個字元,所以字串剩餘的空間,就是總的寬度width減減去字串的,再減去兩邊方框的字元,然後再除二即可,然後因為存在基數的情況,所以還會有後面的考慮。
此外:使用%*s,表示這裡的具體域寬值由後面的實參決定,如printf(「%*s」,6, 「abc」)就是把」abc」放到在域寬為6的空間中右對齊。
*就是用來控制域寬而已。
格仔中輸出 藍橋杯
格仔中輸出 stringingrid方法會在乙個指定大小的格仔中列印指定的字串。要求字串在水平 垂直兩個方向上都居中。如果字串太長,就截斷。如果不能恰好居中,可以稍稍偏左或者偏上一點。下面的程式實現這個邏輯,請填寫劃線部分缺少的 public static void stringingrid int...
藍橋杯 格仔中輸出
格仔中輸出 stringingrid函式會在乙個指定大小的格仔中列印指定的字串。要求字串在水平 垂直兩個方向上都居中。如果字串太長,就截斷。如果不能恰好居中,可以稍稍偏左或者偏上一點。下面的程式實現這個邏輯,請填寫劃線部分缺少的 include include void stringingrid i...
藍橋杯 格仔中輸出
格仔中輸出 stringingrid函式會在乙個指定大小的格仔中列印指定的字串。要求字串在水平 垂直兩個方向上都居中。如果字串太長,就截斷。如果不能恰好居中,可以稍稍偏左或者偏上一點。下面的程式實現這個邏輯,請填寫劃線部分缺少的 這是一道 填空題 include include include vo...