输出格式

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. 在workbench中导入.sql文件!(导入数据库文件)

    第一步,登陆mysql workbench 第二步,打开自己的数据 ,此处默认(root) 打开数据库后页面 : 第三步,新建一个schema ,随便给个名字,这里起名为test : 可以看到test ...

  2. ajax异步获取数据后动态向表格中添加数据(行)

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...

  3. ***jQuery使用总结(原创)

    Q: jquery选择器为变量时是怎么办 A: 一个变量我知道可以这样写:$("#"+id) Q: 如何清除单选框的checked属性 A: $("input[type= ...

  4. Delphi与Windows 7下的用户账户控制(UAC)机制

    WIN7, Vista提供的UAC机制,它的主要目的是防止对于操作系统本身的恶意修改.对于Delphi程序的影响,UAC主要在于以下几点:1.由于UAC机制,Delphi对于系统的操作可能无声的失败, ...

  5. <a href="ip地址" target=""_blank">a里面的target</a>

    HTML <a> 标签的 target 属性 定义和用法 <a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a> 标签内包含一个 targe ...

  6. 使用HttpClient调用第三方接口

    最近项目中需要调用第三方的Http接口,这里我用到了HttpClient. 首先我们要搞明白第三方接口中需要我们传递哪些参数.数据,搞明白参数以后我们就可以使用HttpClient调用接口了. 1.调 ...

  7. Swift 与 Kotlin 的简单对比

    一位国外的程序员认为 Swift 的语法与 Kotlin 相似,并整理了一些 Swift 和 Kotlin 的对比,下面是一些例子,大家不妨也看看. BASICS Hello World Swift ...

  8. Windows 10 S中的Device Guard详解(上篇)

    本文探讨Windows 10 S(下称Win10S)中的Device Guard(设备保护,下称DG).我将提取策略,并弄清楚在默认Win10S系统上可以和不可以运行什么.我将在下一篇文章中介绍在不安 ...

  9. Android进程间通信之内部类作为事件监听器

    在Android中,使用内部类能够在当前类里面发用改监听器类,由于监听器类是外部类的内部类.所以能够自由訪问外部类的全部界面组件. 下面是一个调用系统内部类实现短信发送的一个样例: SMS类: pac ...

  10. kvc VS kvo

    Kvo是Cocoa的一个重要机制,它主要是用于对一个属性的新旧值的监控. 例如说依据A(数 据类)的某个属性值变化,B(view类)中的某个属性做出对应变化.对于MVC,kvo应用的地方很广泛. 使用 ...