大家好,又见面了,我是全栈君。
题目链接:http://www.patest.cn/contests/pat-a-practise/1031
题目:
分析:
排版题。注意先计算好最后一排的字符数,然后计算前面几排的空格数。难度不大
这里有个小技巧,就是先把要输出的结果都存储到ouput[ ]字符数组中。等所有拍好后再输出output[ ]就可以。这样能够方便得写处于右边的一列的循环。
AC代码:
#include<stdio.h> #include<string> using namespace std; char output[30][30];//用于存储结果最后输出 char str[81]; int main(void){ //freopen("F://Temp/input.txt","r",stdin); gets(str); string str1 = string(str); int size = str1.size(); int h = (size + 2) / 3; int w = size - 2 * h; int point = 0; for(int i= 0;i <h;i ++){ for(int j= 0;j <w+ 2;j ++){ output[i][j] = ' '; } } for(int i = 0;i < h;i ++,point ++){ output[i][0] = str[point]; }//最左边的一列 for(int i= 1;i <= w;i ++,point ++){ output[h - 1][i] = str[point]; }//最以下一行 for(int i= h - 1; i >= 0;i --,point ++){ output[i][w + 1] = str[point]; }//最右边一列 for(int i= 0;i < h;i ++){ for(int j= 0 ;j <w+ 2;j ++){ printf("%c",output[i][j]); } printf("\n"); } return 0; }
截图:
——Apie陈小旭
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115610.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...