7-1 打印沙漏 (20 分)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印





  • 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:
输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:
19
输出样例:
****
***



  • 2

                                                      我的代码:

include<stdio.h>
int n;
char a;
int l;
int sum=1;
int rest;
int space;
int icon;
int s;
int i;

int main()
{
scanf("%d %c",&n,&a);
if(n<5){
rest=n-1;
printf("%c\n%d",a,rest);
return 0;
}
for(l=3;sum<=n;l+=2){
sum+=2l;
}
l-=4;
rest=n-sum+l2+4;
for(icon=l;icon>=1;icon-=2){
space=(l-icon)/2;
for(s=space;s>0;s--){
printf(" ");
}
for(i=icon;i>0;i--){
printf("%c",a);
}
printf("\n");
}
for(icon=3;icon<=l;icon+=2){
space=(l-icon)/2;
for(s=space;s>0;s--){
printf(" ");
}
for(i=icon;i>0;i--){
printf("%c",a);
}
printf("\n");
}
printf("%d",rest);
return 0;
}

                                                   2.设计思路第一步:首先要想到上下图形的代码要分别编写。第二步:图形是对称图形,所以代码的重复可以减少工作量。第三步:计算沙漏层数:因为每层与上一层相差2个符号,若下一层符号数大于剩下符号数的一半,则不能再配一层。第四步:检测层数是否正确,以及上半部分沙漏的输出。第五步:沙漏下半部分的输出以及统计剩余符号,在统计时,应注意:先计算除中间只有一个符号的行,将其结果乘以2并+1则为总共使用的符号数。3.本题调试过程碰到问题及解决办法错误结果截图:![](https://img2018.cnblogs.com/blog/1580435/201902/1580435-20190216104841302-1672186935.png)错误原因:因不仔细,在最后一个循环上的i--打成了i++解决方法:在逐层排查的过程中,终于找到了这个错误。4.运行结果截图![](https://img2018.cnblogs.com/blog/1580435/201902/1580435-20190216103403787-1760194959.png)

转载于:https://www.cnblogs.com/The-light-of-the-apocalypse/p/10387033.html

假期第一次编程总结(改二)相关推荐

  1. 中学编程_您可以从30岁的第一次编程采访中学到什么

    中学编程 by Sean Choi 通过蔡恩 您可以从30岁的第一次编程采访中学到什么 (What you can learn from a 30-year-old's first coding in ...

  2. 斯坦福机器学习公开课第一次编程作业

    第一次编程作业跟着讲义感觉还是很简单,毕竟大部分代码都给了,自己只需要写一点点的算法实现,其实就是编写几个数学公式的事情,接上代码. PS:博主在做一维的情况时对各个变量的计算进行了向量化,因此损失函 ...

  3. 假期自学编程没有学习路线?

    假期假想自学编程?^ _ ^ 首先,我们要搞清楚,会语法和会编程 区别很大 熟练的语法是编程的基础,但绝对不是全部.一门语言的熟练精通需要反复练习实战. 这里我首推C语言,计算机系学生基本都会学习. ...

  4. 《实时控制软件设计》第一次编程作业

    //代码: #include <iostream> #include <Eigen/Dense> #include <cmath> using Eigen::Mat ...

  5. 网络智能和大数据公开课Homework3 Map-Reduce编程

    Web Intelligence and Big Data  by Dr. Gautam Shroff 这门课是关于大数据处理,本周是第一次编程作业,要求使用Map-Reduce对文本数据进行统计.使 ...

  6. 【Machine Learning 四】设置机器学习可用的Matlab编程分配环境

    访问MATLAB在线并上传编程练习文件 在课程期间,MathWorks将为机器学习学生提供对MATLAB Online的访问.MATLAB Online是MATLAB桌面程序的在线版本.它在基于Web ...

  7. 技术面试时,程序员需要什么样的编程测试?

    良好的招聘流程抵万金,本文中就来和你探讨下如何设计招聘流程,以及聪明的雇主应该避免哪些做法. 作者 | Mike Hearn 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews ...

  8. 业余时间零基础自学编程,9 个月后我成为一名软件工程师

    在这篇文章里,我想分享自己如何在 9 个月内一边做着全职工作,一边自学编程,从一名小白成长为年薪六位数软件工程师. 每当阅读别人的成功故事时,我的第一反应都是查看作者的背景,希望他们的经历和故事也发生 ...

  9. 机器人python极客pdf_机器人Python极客编程入门与实战

    编辑推荐 有了先进的软件.硬件开发平台,剩下的只是创意.中国人,特别是中国的年轻人,是全球富有创业.创新精神的一群人,这样的一个群体难道还会缺乏创意吗? "青少年学编程系列丛书"只 ...

最新文章

  1. centos修改SSH端口并禁用root远程登录
  2. 数据结构之快速排序图文详解及代码(C++实现)
  3. 每日一笑 | 坐牢吗?学编程那种~
  4. iphone怎样关闭副屏_小米新设计专利曝光:“Z”型折叠屏手机
  5. UVA10162 Last Digit【数学规律】
  6. Page Cache与Page回写
  7. 熵、条件熵、互信息等概念
  8. Dokcer从理论到实践----------Docker原理
  9. Qt TextEdit 不自动换行 取消换行
  10. 使用爱剪辑等软件制作视频的全套入门教程
  11. hough变换理解 原理 步骤
  12. ARM体系结构与编程学习(七)
  13. IOS逆向(5)Tweak代码编写
  14. 计算机考研百天,2021非全日制研究生备考即将进入百天倒计时的你还在坚持吗?...
  15. cmos逻辑门传输延迟时间_终于有人能把常用的三种电平:TTL、CMOS、RS232电平讲明白了...
  16. uni-app实现android,ios打包过程详解
  17. ashampoo(阿香婆) movie studio视频剪辑笔记
  18. 无聊科技正经事周刊(第3期):美团的推荐算法,是在玩火吗?
  19. gitlab:切换远程仓库
  20. Java入门教程(视频)

热门文章

  1. 如何提高UDP的可靠性
  2. poj 3660(floyd 变形)
  3. OncePerRequestFilter的作用
  4. python实例31[文件夹清理]
  5. 学习:深入浅出之正则表达式(转)
  6. CentOS下安装MySQL报安装文件conflicts错误:
  7. java 基本功 —— 内存相关
  8. css3 定义选择器
  9. 用UltraISO制作的u盘ubuntu11.04,启动失败解决方案
  10. 9、C语言 —— 指针的用处