博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
L1-002 打印沙漏 (20分)
阅读量:3967 次
发布时间:2019-05-24

本文共 895 字,大约阅读时间需要 2 分钟。

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

在这里插入图片描述

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

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


输入格式:

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

输出格式:

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


输入样例:

19 *

输出样例:

在这里插入图片描述

2

#include
int main() {
int num,row=0,i,j; char ch; scanf("%d %c",&num,&ch); for(i=0;; ++i) {
//得到行数 if(2*i*(i+2)+1>num) {
row=i-1; break; } } //输出上部分三角形,除了一颗星 for(i=row; i>=1; --i) {
for(j=row-i; j>=1; --j) {
printf(" "); } for(j=2*i+1; j>=1; --j) {
printf("%c",ch); } printf("\n"); } //负责输出一颗星那行 for(i=row; i>=1; --i) {
printf(" "); } printf("%c",ch); printf("\n"); //输出下三角形,除了一颗星 for(i=1; i<=row; ++i) {
for(j=row-i; j>=1; --j) {
printf(" "); } for(j=2*i+1; j>=1; --j) {
printf("%c",ch); } printf("\n"); } printf("%d", num-(2*row*(row+2)+1)); return 0;}

转载地址:http://zmfki.baihongyu.com/

你可能感兴趣的文章
Android&nbsp;USB&nbsp;驱动分析
查看>>
Android&nbsp;Sensor传感器系统架构初探
查看>>
Android&nbsp;Sensor传感器系统架构初探
查看>>
Sensor传感器源码的阅读与应用开发…
查看>>
Sensor传感器源码的阅读与应用开发…
查看>>
Android传感器编程入门
查看>>
Android传感器编程入门
查看>>
Android的传感器HAL层的书写---基…
查看>>
Linux下android内核编译
查看>>
emulator使用方法
查看>>
emulator使用方法
查看>>
C&nbsp;语言&nbsp;undefined&nbsp;reference&nbsp;to&nbsp;&#039;s…
查看>>
动态链接库
查看>>
工作队列的初始化(INIT_WORK的参…
查看>>
生成和使用动态链接库和静态链接库…
查看>>
linux工作队列(转)
查看>>
工作队列的初始化(INIT_WORK的参…
查看>>
sysfs&nbsp;and&nbsp;/proc/bus/usb/device
查看>>
linux工作队列(转)
查看>>
跟我一起写udev规则(译)
查看>>