思路:
最後一行之前的每一行頭尾輸入序號爲“行序號”和“長度-行序號”的元素,其餘位置輸入空格。最後一行輸入從序號爲“行序號”到“長度-行序號”的元素。
解答:
#include <cstdio>
#include <cstring>
using namespace std;
/*
helloworld!
*/
int main() {
char input[100];
while(scanf("%s", input) != EOF) {
int len = strlen(input);
int side = (len+2)/3;
int mid = len-side*2;
int width = mid+2;
for(int i=0; i<=side-1; i++) {
//如果在最後一行之前
if(i<side-1) {
for(int j=0; j<=width-1; j++) {
if(j==0)
printf("%c", input[i]);
else if(j==width-1)
printf("%c", input[len-i-1]);
else
printf(" ");
}
}
//如果在最後一行
else {
for(int k=i; k<=len-i-1; k++) {
printf("%c", input[k]);
}
}
//每行末尾換行
printf("\n");
}
}
return 0;
}
坑:
- 存放輸入字符串的字符數組要夠大,否則可能出現“運行錯誤83”