输出格式

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. Spring Boot Jpa 表名小写转大写

    今天在使用SpringBoot整合Hibernate后创建表,表名为小写,而在linux下,mysql的表名是区分大小写的,因此在我的数据表中,就出现了两个一样的表 act_id_user 和  AC ...

  2. cogs——1001. [WZOI2011 S3] 消息传递

    1001. [WZOI2011 S3] 消息传递 ★★   输入文件:messagew.in   输出文件:messagew.out   简单对比时间限制:1 s   内存限制:128 MB Prob ...

  3. 高数(A)下 第十二章

    12.1 12.2 12.3  12.4 12.5  12.6 自测题

  4. MapReduce获取分片数目

    问题 MapReduce Application中mapper的数目和分片的数目是一样的,可是分片数目和什么有关呢? 默认情况下.分片和输入文件的分块数是相等的.也不全然相等,假设block size ...

  5. 踩坑录-libreoffice fatal error com.sun.start.ucb.Interactive.AugmentedIOException: a folder could not be created

    错误概要: 1.LibreOffice可以正常使用: 2.启动tomcat报错如下: Fatal error The application cannot be started. ][context= ...

  6. [AngularJS 1.6] ngModelOptions and inheritance

    Problem with ngModleOptions before 1.6: <input type="text" name="fullname" ng ...

  7. Mahout贝叶斯算法拓展篇3---分类无标签数据

    代码測试环境:Hadoop2.4+Mahout1.0 前面博客:mahout贝叶斯算法开发思路(拓展篇)1和mahout贝叶斯算法开发思路(拓展篇)2 分析了Mahout中贝叶斯算法针对数值型数据的处 ...

  8. Justinmind使用教程(2)——计算表达式及条件用法

    Justinmind的计算表达式以及条件condition的使用对于刚開始学习的人而言比較麻烦. 结合网上了一个教程本文主要针对计算器演示样例进行计算表达式以及条件的使用. 实现目标:依据单位价格(静 ...

  9. influxdb常用命令

    创建数据库 create database DBName 删除数据库 drop database DBName 使用指定数据库 use DBName 显示所有表 SHOW MEASUREMENTS 删 ...

  10. Unix - 文件里构成一个空洞的分析

    lseek函数显示地为一个打开文件设置偏移量,文件偏移量能够大于文件的当前长度,在这样的情况下.对该文件的下一次写将加长该文件.并在文件里构成一个空洞,这一点是同意的. 位于文件里但没有写过的字节都被 ...