格子中输出

StringInGrid函数会在一个指定大小的格子中打印指定的字符串。
要求字符串在水平、垂直两个方向上都居中。
如果字符串太长,就截断。
如果不能恰好居中,可以稍稍偏左或者偏上一点。

下面的程序实现这个逻辑,请填写划线部分缺少的代码。

#include <stdio.h>
#include <string.h>void StringInGrid(int width, int height, const char* s)
{int i,k;char buf[1000];strcpy(buf, s);if(strlen(s)>width-2) buf[width-2]=0;printf("+");for(i=0;i<width-2;i++) printf("-");printf("+\n");for(k=1; k<(height-1)/2;k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("|");printf("%*s%s%*s",_____________________________________________);  //填空printf("|\n");for(k=(height-1)/2+1; k<height-1; k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("+");for(i=0;i<width-2;i++) printf("-");printf("+\n");
}int main()
{StringInGrid(20,6,"abcd1234");return 0;
}

对于题目中数据,应该输出:


注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。

代码

#include <stdio.h>
#include <string.h>void StringInGrid(int width, int height, const char* s)
{int i,k;char buf[1000];strcpy(buf, s);if(strlen(s)>width-2) buf[width-2]=0;printf("+");for(i=0;i<width-2;i++) printf("-");printf("+\n");for(k=1; k<(height-1)/2;k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("|");//    printf("%*s%s%*s",_____________________________________________);  //填空printf("%*s%s%*s",(width-strlen(buf)-2)/2,"",buf,(width-strlen(buf)-2)/2,"");  //填空printf("|\n");for(k=(height-1)/2+1; k<height-1; k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("+");for(i=0;i<width-2;i++) printf("-");printf("+\n");
}int main()
{//    printf ("%*s \n",5, "1");StringInGrid(20,6,"abcd1234");return 0;
}

征战蓝桥 —— 2015年第六届 —— C/C++A组第4题——格子中输出相关推荐

  1. 征战蓝桥 —— 2015年第六届 —— C/C++A组第10题——灾后重建

    题目 Pear市一共有N(<=50000)个居民点,居民点之间有M(<=200000)条双向道路相连.这些居民点两两之间都可以通过双向道路到达. 这种情况一直持续到最近,一次严重的地震毁坏 ...

  2. 征战蓝桥 —— 2015年第六届 —— C/C++A组第5题——九数组分数

    九数组分数 1,2,3-9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. #include <stdio.h>void test ...

  3. 征战蓝桥 —— 2016年第七届 —— C/C++A组第8题——四平方和

    题目 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 ...

  4. 征战蓝桥 —— 2016年第七届 —— C/C++A组第10题——最大比例

    题目 X星球的某个大奖赛设了M级奖励.每个级别的奖金是一个正整数. 并且,相邻的两个级别间的比例是个固定值. 也就是说:所有级别的奖金数构成了一个等比数列.比如: 16,24,36,54 其等比值为: ...

  5. 征战蓝桥 —— 2016年第七届 —— C/C++A组第3题——方格填数

    题目 如下的10个格子 (如果显示有问题,也可以参看[图7-1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案 ...

  6. 征战蓝桥 —— 2016年第七届 —— C/C++A组第7题——剪邮票

    剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票. 现在你要从中剪下5张来,要求必须是连着的. (仅仅连接一个角不算相连) 比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是 ...

  7. 征战蓝桥 —— 2016年第七届 —— C/C++A组第5题——消除尾一

    题目 下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0 如果最后一位是0,则原数字保持不变. 如果采用代码中的测试数据,应该输出: 0000000000000000000000000110 ...

  8. 征战蓝桥 —— 2016年第七届 —— C/C++A组第2题——生日蜡烛

    题目 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日party ...

  9. 征战蓝桥 —— 2016年第七届 —— C/C++A组第4题——快速排序

    题目 排序在各种场合经常被用到. 快速排序是十分常用的高效率的算法. 其思想是:先选一个"标尺", 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于 ...

最新文章

  1. Spring Boot 配置加载顺序详解
  2. 在家办公效率最高的组合!
  3. 二级考试java模拟考试_2017年计算机二级考试Java模拟试题及答案
  4. 邓总的vim配置,需要的自己拿走~
  5. 三范式理解 数据库原理
  6. 热烈庆祝个人博客突破1万人!
  7. 原声php 读取excel乱码_如何解决php读取excel乱码问题
  8. Windows 提示“缺少所需的 CD/DVD 驱动器设备驱动程序”
  9. 跨平台,开源,免费的单片机IDE开发环境搭建-SDCC+eclipse
  10. python打开文件对话框
  11. Dell灵越燃7000网络驱动被误删后无法安装解决方案
  12. ubuntu远程无法连接到服务器配置,解决ubuntu无法远程连接
  13. bzoj 4864: [BeiJing 2017 Wc]神秘物质 splay
  14. js+css3的卡牌抽奖特效动画
  15. 数据库基础语法--php基础最详细教程
  16. html以及css基础知识
  17. 如何用射频接收机测量噪声系数?
  18. 软考高级系统架构设计师:论面向服务架构(SOA)设计及其应用
  19. 二维静电场有限元matlab,实验2 MATLAB有限元计算
  20. oracle before after 触发器,触发器 after before 之间的区别

热门文章

  1. 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
  2. bootbox显示中文的按钮
  3. hunnu---11547 你的组合数学学得如何?
  4. CentOS虚拟机不能联网状况下yum方式从本地安装软件包
  5. 计算机系统win7安装教程,惠普EliteDesk 705 G3电脑安装win7系统方法
  6. php bigpipe实现,如何通过php 实现BigPipe分块输出
  7. js时间搓化为今天明天_护肤品搓泥怎么办啊啊啊啊啊......
  8. 散列表相关题目(线性探测再散列法)
  9. 每日程序C语言10-欧几里德算法
  10. ant design vue table 高度自适应_2年Vue项目实战经验汇总!