输出格式

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

某水比参加了XX杯,但是他太水,所以三等都木有,所以他决定出一道水题水一水。

Input:

输入多组测试数据,每一组一个整数width(3-50),一个整数height(3-50),一个字符串(长度不超过width-2). 

Output:

对于每个测试实例,要求把字符串按要求输出(字符串处于由width为长,height为宽的矩形的中部),
(。。。倘若不能完全对称,请以左边比右边少,上边比下边少为原则如样例),具体格式请参照sample output。

Sample Input:

20 6 abcd1234
20 6 abc

Sample Output:

+------------------+
| |
| abcd1234 |
| |
| |
+------------------+
+------------------+
| |
| abc |
| |
| |
+------------------+
 解题思路:水题!!!刚开始用了二维数组存放,代码比较简洁,但老是WA,原来是memset函数没有弄清楚,用0直接就填充字符二维数组,显然是不对的。。。本题所要填充的是字符空格' ',对应的ASCII码为32,因为memset函数将s所指向的某一块内存中的后n个字节的内容全部设置为ch指定的ASCII值,也可以直接用单个字符进行填充,明白这个后,以后做题思路就清晰了。
二维数组AC代码:
 #include<bits/stdc++.h>
using namespace std;
char draw[][],s[];
int main(){
int w,h,len,k,w0,h0;
while(cin>>w>>h>>s){
memset(draw,' ',sizeof(draw));
draw[][]=draw[][w-]=draw[h-][]=draw[h-][w-]='+';
for(int j=;j<w-;++j)
draw[][j]=draw[h-][j]='-';
for(int i=;i<h-;++i)
draw[i][]=draw[i][w-]='|';
len=strlen(s);k=;h0=(h-)/;w0=(w-len)/;
for(int j=w0;k<len;++j)
draw[h0][j]=s[k++];
for(int i=;i<h;++i){
for(int j=;j<w;++j)
printf("%c",draw[i][j]);
printf("\n");
}
}
return ;
}

AC代码:

 #include<bits/stdc++.h>
#define FOR(i,a,b) for (int i=a;i<=b;++i)
#define PTF printf
using namespace std;
int main(){
int w,h,len,objh,objw;char s[];
while(cin>>w>>h>>s){
len=strlen(s);
PTF("+");
FOR(i,,w-)PTF("-");
PTF("+\n");
h-=;h--;/*h减1是去掉包含字符串的那一行,接下来再平分行数*/objh=h/;
FOR(i,,objh){
PTF("|");
FOR(j,,w-)PTF(" ");
PTF("|\n");
}
objw=(w--len)/;
PTF("|");
FOR(i,,objw)PTF(" ");
PTF("%s",s);//直接输出字符串
FOR(i,,w--len-objw)PTF(" ");
PTF("|\n");
FOR(i,,h-objh){
PTF("|");
FOR(j,,w-)PTF(" ");
PTF("|\n");
}
PTF("+");
FOR(i,,w-)PTF("-");
PTF("+\n");
}
return ;
}

ACM_输出格式的更多相关文章

  1. iOS中NSLog输出格式大全

    iOS开发中的输出格式大全: %@                   对象 %d, %i               整数%u                    无符整形%f           ...

  2. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  3. print输出格式总结

    妈的,今天又被printf坑了一回...看来需要一次性总结书所有结果,省的又出现这样那样的麻烦.. #include<stdio.h> #include<string.h> # ...

  4. C(C++)输入输出格式

    c&c++输入输出控制格式 许多情况下,都需要控制输出结果的表现形式.如输出宽度.输出精度.输出格式等.C++的iomanip.h中定义了许多控制符,这些控制符可以直接插入到流中,控制数据的输 ...

  5. <fmt:formatDate>标签的输出格式:

    <fmt:formatDate>标签的输出格式:  d   月中的某一天.一位数的日期没有前导零.      dd   月中的某一天.一位数的日期有一个前导零.      ddd   周中 ...

  6. C语言printf()输出格式大全

    1.转换说明符       %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99)       %c             字符       %d             有符号十 ...

  7. Printf()输出格式控制(转)

    int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...

  8. iOS开发中NSLog输出格式大全

    本文的内容是总结了一下iOS开发中NSLog输出格式大全,虽然比较基础,但有总结毕竟会各位正在学习iOS开发的朋友们一些小小的帮助. %@                   对象 %d, %i    ...

  9. [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]

    Very often, especially in programming contests, we treat a sequence of non-whitespace characters as ...

随机推荐

  1. 搭桥(codevs 1002)

    题目描述 Description 有一矩形区域的城市中建筑了若干建筑物,如果某两个单元格有一个点相联系,则它们属于同一座建筑物.现在想在这些建筑物之间搭建一些桥梁,其中桥梁只能沿着矩形的方格的边沿搭建 ...

  2. [USACO12FEB]附近的牛Nearby Cows

    题目描述 Farmer John has noticed that his cows often move between nearby fields. Taking this into accoun ...

  3. 选择器的使用(nth-child和nth-last-child选择器)

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...

  4. 013 IPv6

    Router>en Router#config t Enter configuration commands, one per line.  End with CNTL/Z. Router(co ...

  5. SSD硬盘安装系统后要做的事

    1***cmd>fsutil behavior query DisableDeleteNotify 0如果返回值是0,则代表TRIM处于开启状态:反之如果返回值是1,则代表TRIM处于关闭状态2 ...

  6. JAVA获取操作系统的信息

    列出全部信息: Properties prop = System.getProperties(); prop.list(System.out); 获取某个信息: String os = prop.ge ...

  7. mongodb由于目标计算机积极拒绝无法连接失败

    这不是mongodb无法启动,是你还没有启动mongodb就来连接使用它了,肯定是不成功的.安装完mongodb后先将bin目录在环境变量下写入path然后在bin同级目录下创建一个db文件夹接着运行 ...

  8. B. Amr and The Large Array(Codeforces Round #312 (Div. 2)+找出现次数最多且区间最小)

    B. Amr and The Large Array time limit per test 1 second memory limit per test 256 megabytes input st ...

  9. (五)Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...

  10. 【bzoj4245】[ONTAK2015]OR-XOR

    利用前缀和选m个区间等价于选m个数 从最高位开始找,如果这一位至少有m个0,则可以为0,该位为1的后面就不可以选了. 还要注意,最后一个数如果该位为1,那么这一位必须为1,然后要从62开始枚举,而不是 ...