《算法筆記》codeup_100000577_B

思路:

最後一行之前的每一行頭尾輸入序號爲“行序號”和“長度-行序號”的元素,其餘位置輸入空格。最後一行輸入從序號爲“行序號”到“長度-行序號”的元素。

解答:

#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;
}

坑:

  1. 存放輸入字符串的字符數組要夠大,否則可能出現“運行錯誤83”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章