c语言刷题——输出图案

1.输出用“*”组成的X形图案

题目:请打印用“*”组成的X形图案

描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。

输出描述:

针对每行输入,输出用“*”组成的X形图案。

示例1

输入:

5

输出:

*   ** * *  * * 
*   *

 示例2

输入:

6

输出:

*    **  * **  ** *  * 
*    *

1.题目分析 

在该题中需要输出用“*”构成的x型图案,我们先在表格*图案上画在表格上以便于分析其中的规律

例如以下是当n为8时在表格里的图案

在以上表格中我们可以看出在紫色线所包围的*横坐标都等于纵坐标 

而在在以上表格中我们可以看出在绿色线所包围的*横坐标+纵坐标=n-1

通过以上分析我们就找出了这个图案的规律,接下来就是代码的实现

2. 代码实现

要输出一个多行多列的项目时我们可以想到使用for循环里面再嵌套一个for循环的方式来实现
1.第一个for循环实现输出行,第二个for循环来实现输出列
2.使用if语句来实现当位置满足以上输出*时在屏幕上打印*
3.使用else语句来实现当不满足输出*时在屏幕上打印空格

以下便是完整的代码

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int n = 0;while(scanf("%d", &n)!=EOF){for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){if (i == j){printf("*");}else if (i + j == n - 1){printf("*");}else{printf(" ");}}printf("\n");}}return 0;
}

我们来输入几个不同的n值来程序测试

2.输出用“*”组成的空心正方形图案 

输入描述:

多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。

输出描述:

针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。

示例1

输入:

4

输出:

* * * * 
*     * 
*     * 
* * * * 

示例2

输入:

5

输出:

* * * * * 
*       * 
*       * 
*       * 
* * * * * 

1.题目分析 

在该题中需要输出用“*”构成的正方形型图案,我们先在表格*图案上画在表格上以便于分析其中的规律

以下是当n等于5时的表格

从以上n=5时的图案可以看出在第一行,第四行,第一列,第四列都有*

所以可以得出该题的规律:当输入n时,在第1行,第n-1行,第1列,第n-列都打印*
其余位置打印空格

2.代码实现

要输出一个多行多列的项目时我们可以想到使用for循环里面再嵌套一个for循环的方式来实现

1.当第1行或者第n-1行或者第1列或者第n-列都打印*
2.其余其他位置打印空格
 

以下是完整的代码

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int n = 0;while(scanf("%d", &n)!=EOF){for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){if (i == 0 || i == n - 1 || j == 0 || j == n - 1){printf("* ");}else{printf("  ");}}printf("\n");}}return 0;
}

我们来输入几个不同的n值来测试程序

3.输出用“*”组成的菱形图案

 

1.题目分析 

要求输入一个数n(要求n为奇数),输出菱形图案,例如当输入n为13时可以看出这个菱形有13行,13列将这个图形可以将其分成上下两个部分来实现 

1.上部分图案 

 将上半部分放入表格中便于观察,透过以上表格可以发现上半部分图形有7行,若令行为i,列为j,每行前部分空格为7-i,每行*数为2i-1

通过以上分析可以得出上半部分的图案代码

 

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);//输入图案总行数int s = (n / 2)+1;for (int i = 1; i <= s; i++){int j = 0;for(j=1;j<=s-i;j++){printf(" ");}for (j = 1; j <= 2 * i - 1; j++){printf("*");}printf("\n");}return 0;
}

1.下部分图案  

 将上半部分放入表格中便于观察,透过以上表格可以发现下半部分图形有6行,若令行为i,列为j,每行前部分空格为i,每行*数为13-2i

以下是输出下半部分图案代码

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);//输入图案总行数int s = (n / 2)+1;for (int i = 1; i <= s - 1; i++){int j = 0;for (j = 1; j <= i; j++){printf(" ");}for (j = 1; j <= n - 2 * i; j++){printf("*");}printf("\n");}return 0;
}

2.完整代码实现

题目中要求输入数为奇数,这时我们要用到一个if...else语句,当输入n不为奇数时提示请输入奇数
还需实现多组输入就使用一个while循环,当有输入值时候即scanf返回值不为EOF时进入循环

以下是该程序完整的代码 

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{   int n = 0;while(scanf("%d", &n)!=EOF)//输入图案总行数{int s = (n / 2)+1;if (n % 2 == 1){for (int i = 1; i <= s; i++){int j = 0;for (j = 1; j <= s - i; j++){printf(" ");}for (j = 1; j <= 2 * i - 1; j++){printf("*");}printf("\n");}for (int i = 1; i <= s - 1; i++){int j = 0;for (j = 1; j <= i; j++){printf(" ");}for (j = 1; j <= n - 2 * i; j++){printf("*");}printf("\n");}}else{printf("请输入奇数\n");}}return 0;
}

输入几个值来测试一下程序是否能正常运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu18.04 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解决方法

解决办法&#xff1a; ssh-keygen -R 192.168.11.11 注意根据自己的实际地址 参考博客&#xff1a;【linux】WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解决方法_warning: remote host identification has changed!-CSDN博客

大语言模型中的第一性原理:Scaling laws

大语言模型的尺度定律在大语言模型的训练过程中起到了非常重要的作用。即使读者不参与大语言模型的训练过程&#xff0c;但了解大语言模型的尺度定律仍然是很重要的&#xff0c;因为它能帮助我们更好的理解未来大语言模型的发展路径。 1. 什么是尺度定律 尺度定律&#xff08…

Docker入门篇来啦~

文章目录 1虚拟化技术1.1 硬件级虚拟化1.2 操作系统级虚拟化 2 Docker是什么2.1 Docker介绍2.2 容器和虚拟机的区别2.3 为什么使用Docker 3 Docker运行环境部署3.1 Docker安装3.2 Docker服务启动 4 Docker核心组件4.1 镜像4.1.1 镜像的基本概念4.1.2 镜像的组成结构4.1.3 镜像的…

Java 三大特性之继承

目录 一、为什么需要继承&#xff1f; 二、继承概念 三、继承的语法 四、子类访问父类成员 五、super关键字 六、继承关系下的构造方法 七、继承关系下的初始化 八、protected关键字 九、继承的三种方式 十、final关键字 十一、继承和组合 一、为什么需要继承&#…

C语言——rand函数

一、rand函数 这是一个在 C 标准库 <stdlib.h> 中定义的函数&#xff0c;用于生成伪随机数&#xff0c;默认情况下&#xff0c;它生成从 0 到 RAND_MAX 的伪随机数&#xff0c;其中 RAND_MAX 是一个常数&#xff0c;通常是 32767。 1、函数原型&#xff1a; 2、函数返回…

k8s Dashboard 运维维护记录

k8s Dashboard 运维维护记录 k8s Dashboard 运维维护记录 Q1&#xff1a;需要使用firefox浏览器访问 提示了证书错误NET::ERR_CERT_INVALID&#xff0c;原因是由于物理机的浏览器证书不可用 需要注意的是&#xff0c;若提示“连接不安全”的警告时&#xff0c;点击“高级”…

ImageNet的下载及解压简易版本

ImageNet下载 官方下载 https://www.cnblogs.com/devilmaycry812839668/p/15590629.html 百度网盘迅雷下载 链接是个种子&#xff08;只要下载12年版本的&#xff0c;不要全下载&#xff09; https://pan.baidu.com/s/1MEjNh6evha2hcdrQXjNv8w?pwdyzza 下载后解压 解压trai…

SAP保税区业务方案

1. 保税区背景&#xff1a; 是经国务院批准设立的、海关实施特殊监管的经济区域&#xff0c;是我国目前开放度和自由度最大的经济区域。其功能定位为“保税仓储、出口加工、转口贸易”三大功能。根据现行有关政策&#xff0c;海关对保税区实行封闭管理&#xff0c;境外货物进入…

05 - 步骤 JSON output

简介 JSON Output 步骤用于将 Kettle 中的行流数据写出到 JSON 格式的文件或流中。它允许用户将 Kettle 中处理过的数据以 JSON 格式进行输出&#xff0c;适用于各种数据处理和交换场景。 什么是行流数据&#xff1f; preview data 中的每一个字段都是一个行流数据 使用 场…

www.fastssh.com SSH over WebSockets with CDNs

https://www.fastssh.com/page/create-ssh-cdn-websocket/server/这其实不是标准的websocket报文(服务器响应报文无Sec-Websocket-Accept字段)&#xff0c;所以无法使用github.com/gorilla/websocket包&#xff1a;GET / HTTP/1.1 Host: hostname:8080 User-Agent: Go-http-cli…

vue-html5-editor富文本编辑器抓取网络图片本地化

在vue中使用vue-html5-editor做的文章内容编辑器&#xff0c;至于怎么引用可另行百度&#xff0c;网络上有很多介绍&#xff1b;本文主要介绍如何在复制粘贴的时候跳过跨域限制和禁止外站的图片请求问题。 本文的方法比较笨拙&#xff0c;一起交流学习。 在研究使用vue-html5…

关于测试用例

目录 一 测试用例介绍 二 写用例的好处 三 不适合写用例的情况 一 测试用例介绍 测试用例由测试来写&#xff0c;编写时间在需求评审和设计评审&#xff08;如有&#xff09;结束后&#xff0c;需求提测前&#xff0c;用例依赖需求文档来编写。一般包含用例标题&#xff0c…

ubuntu20配置深度学习环境

目录 系统环境安装anaconda文件的安装anaconda环境配置anaconda换中科大源常用的anaconda命令 安装显卡驱动安装CUDA下载cudnn安装pytorch更换conda源选择对应的pytorch版本进行安装 系统环境 ubuntu20&#xff0c;安装了ros noetic。 参考博客主要有&#xff1a; https://g…

javascript 练习 写一个简单 另类录入 电脑组装报价表 可打印

数据格式 &#xff08;1代表cpu、2代表主板、3代表内存、。。。&#xff09; 1i3 12100 630 2H610 480 3DDR4 3200 16G 220 4500G M.2 299 5300W电源 150 6小机箱 85 7GT 730G 4G 350 8WD 2T 399 9飞利浦 24Led 580 主代码 Html JS <!DOCTYPE html> <html lang&qu…

Linux zImage image是什么

2024年5月4日&#xff0c;周六下午 Linux zImage是Linux内核的一种压缩格式。在Linux系统中&#xff0c;内核通常以zImage格式存储在启动介质&#xff08;如硬盘、闪存等&#xff09;上&#xff0c;并由引导加载程序加载到内存中执行。 zImage是一种压缩的内核映像格式&#x…

Python学习笔记------pycharts模块

pyecharts模块简介 Echarts是个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到众多开发者的认可&#xff0c;而python是门富有表达力的语言&#xff0c;很适合用于数据处理&#xff0c;当数据分析遇上数据可视化时pyechart…

EPAI手绘建模APP演示板、材质编辑器、样式编辑器

(11) 更多 图 74 更多工具栏 ① 演示板&#xff1a;打开关闭演示板。演示板用来显示从设备导入的模型图纸图片或者打开模型建模教程网页&#xff0c;是建模过程中一个辅助功能。有些设备有小窗口功能有些没有&#xff0c;对于没有小窗口功能的设备&#xff0c;通过演示板能够在…

LeetCode--质数

Q: 输出 100 以内所有质数 1.0 /* 第一层循环控制检查到哪个数* 第二层通过遍历除以每个比他小的数的方式,检查每个数是不是质数* 由于要遍历检查,设置一个标记,只要任意一次循环可以整除,我们就设置该标记为不是质数 */boolean isPrime true;for (int i 2; i < 100; i)…

Boosting算法揭秘:从原理到scikit-learn实战

Boosting算法揭秘&#xff1a;从原理到scikit-learn实战 在机器学习的江湖中&#xff0c;Boosting算法以其强大的预测能力和独特的训练方式占据了一席之地。与Bagging算法并行训练的理念不同&#xff0c;Boosting算法更注重模型的串行迭代和错误修正。本文将从Boosting算法的基…

一键自动化博客发布工具,chrome和firfox详细配置

blog-auto-publishing-tools博客自动发布工具现在已经可以同时支持chrome和firefox了。 很多小伙伴可能对于如何进行配置和启动不是很了解&#xff0c;今天带给大家一个详细的保姆教程&#xff0c;只需要跟着我的步骤一步来就可以无障碍启动了。 前提条件 前提条件当然是先下…