假期第一次编程总结(改二)
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
假期第一次编程总结(改二)相关推荐
- 中学编程_您可以从30岁的第一次编程采访中学到什么
中学编程 by Sean Choi 通过蔡恩 您可以从30岁的第一次编程采访中学到什么 (What you can learn from a 30-year-old's first coding in ...
- 斯坦福机器学习公开课第一次编程作业
第一次编程作业跟着讲义感觉还是很简单,毕竟大部分代码都给了,自己只需要写一点点的算法实现,其实就是编写几个数学公式的事情,接上代码. PS:博主在做一维的情况时对各个变量的计算进行了向量化,因此损失函 ...
- 假期自学编程没有学习路线?
假期假想自学编程?^ _ ^ 首先,我们要搞清楚,会语法和会编程 区别很大 熟练的语法是编程的基础,但绝对不是全部.一门语言的熟练精通需要反复练习实战. 这里我首推C语言,计算机系学生基本都会学习. ...
- 《实时控制软件设计》第一次编程作业
//代码: #include <iostream> #include <Eigen/Dense> #include <cmath> using Eigen::Mat ...
- 网络智能和大数据公开课Homework3 Map-Reduce编程
Web Intelligence and Big Data by Dr. Gautam Shroff 这门课是关于大数据处理,本周是第一次编程作业,要求使用Map-Reduce对文本数据进行统计.使 ...
- 【Machine Learning 四】设置机器学习可用的Matlab编程分配环境
访问MATLAB在线并上传编程练习文件 在课程期间,MathWorks将为机器学习学生提供对MATLAB Online的访问.MATLAB Online是MATLAB桌面程序的在线版本.它在基于Web ...
- 技术面试时,程序员需要什么样的编程测试?
良好的招聘流程抵万金,本文中就来和你探讨下如何设计招聘流程,以及聪明的雇主应该避免哪些做法. 作者 | Mike Hearn 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews ...
- 业余时间零基础自学编程,9 个月后我成为一名软件工程师
在这篇文章里,我想分享自己如何在 9 个月内一边做着全职工作,一边自学编程,从一名小白成长为年薪六位数软件工程师. 每当阅读别人的成功故事时,我的第一反应都是查看作者的背景,希望他们的经历和故事也发生 ...
- 机器人python极客pdf_机器人Python极客编程入门与实战
编辑推荐 有了先进的软件.硬件开发平台,剩下的只是创意.中国人,特别是中国的年轻人,是全球富有创业.创新精神的一群人,这样的一个群体难道还会缺乏创意吗? "青少年学编程系列丛书"只 ...
最新文章
- centos修改SSH端口并禁用root远程登录
- 数据结构之快速排序图文详解及代码(C++实现)
- 每日一笑 | 坐牢吗?学编程那种~
- iphone怎样关闭副屏_小米新设计专利曝光:“Z”型折叠屏手机
- UVA10162 Last Digit【数学规律】
- Page Cache与Page回写
- 熵、条件熵、互信息等概念
- Dokcer从理论到实践----------Docker原理
- Qt TextEdit 不自动换行 取消换行
- 使用爱剪辑等软件制作视频的全套入门教程
- hough变换理解 原理 步骤
- ARM体系结构与编程学习(七)
- IOS逆向(5)Tweak代码编写
- 计算机考研百天,2021非全日制研究生备考即将进入百天倒计时的你还在坚持吗?...
- cmos逻辑门传输延迟时间_终于有人能把常用的三种电平:TTL、CMOS、RS232电平讲明白了...
- uni-app实现android,ios打包过程详解
- ashampoo(阿香婆) movie studio视频剪辑笔记
- 无聊科技正经事周刊(第3期):美团的推荐算法,是在玩火吗?
- gitlab:切换远程仓库
- Java入门教程(视频)