循环-输出字母围起的正方形

网格一笔画:从欧拉路径到回溯算法的逻辑谜题求解 图论中的欧拉路径与哈密顿路径是解决许多连通性与遍历问题的理论基础,它们描述了在图中不重复地遍历边或顶点的可能性与条件。其核心原理在于对图中顶点度数的奇偶性分析,这直接决定了路径的存在性。这一原理在算法设计与组合优化中具有重要价值,尤其在路径规划、电路板布线及网络分析等场景中应用广泛。本文聚焦于网格一笔画这一具体形式,它将经典的图论问题置于规则网格的约束下,演变为一个需要结合奇偶性判定与系统性搜索的回溯算法问题。通过分析网格顶点度数,可以快速判断解的存在性,而深度优先搜索等算法思想则为复杂谜题提供了系统的求解 阅读详情

【题】

输出字母围起的正方形


输入N*N图形正方形的边长N,图形左上角的字母,输出由字母围成的空心正方形。输出的字母是顺时针连续的,且是循环的,即输出字母'Z'后输出字母"A"。注意在两个字母之间有一个空格。
例如输入:
6  M
输出如下图形:
M N O P Q R
F         S
E         T
D         U
C         V
B A Z Y X W

【代码】

(1)在正方形 的边上打印固定字符。代码如下:

#include "stdio.h"

int main(int argc, char **argv)
{
	int n;
	char che;
	scanf("%d %c", &n, &ch);
	getchar();

	int i, j;

	for (i = 1; i <=n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			if (i == 1 && j == 1)             //左上角第一个字符
				printf("%c", ch);
			else if(j == 1)
				printf("%c", ch);         //正方形左侧的边
			else if(i == 1 && j != n)
				printf(" %c", ch);        //正方形上侧的边
			else if(j == n)
				printf(" %c", ch);        //正方形右侧的边

			else if(i == n && j != n)         //正方形下侧的边
				printf(" %c", ch);
			else                              //正方形的中间
				printf("  ");
		}
		printf("\n");
	}
	return 0;
}

【运行截图】



(2)字符递增,但不考虑字符越界的情况。

#include "stdio.h"

int main(int argc, char **argv)
{
	int n;
	char ch;
	scanf("%d %c", &n, &ch);
	getchar();

	int i, j;

	for (i = 1; i <=n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			if (i == 1 && j == 1)                //左上角第一个字符
				printf("%c", ch);
			else if(j == 1)                      //正方形左侧的边
				printf("%c", ch + n - 1 + n - 1 + n - 1 + n - i);
			else if(i == 1 && j != n)            //正方形上侧的边
				printf(" %c", ch + j -1);
			else if(j == n)                      //正方形右侧的边
				printf(" %c", ch + n - 1 + i - 1);
			else if(i == n && j != n)            //正方形下侧的边
				printf(" %c", ch + n - 1 + n - 1 + n - j);
			else                                 //正方形的中间
				printf("  ");
		}
		printf("\n");
	}
	return 0;
}

【运行截图】



 (3)终结版,考虑字母越界。

#include "stdio.h"


int main(int argc, char **argv)
{
	int n;
	char ch, base;
	scanf("%d %c", &n, &ch);
	getchar();


	int i, j;
	if (ch >= 'a')
		base = 'a';
	else
		base = 'A';


	for (i = 1; i <=n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			if (i == 1 && j == 1)
				printf("%c", ch);
			else if(j == 1)
				printf("%c", ((ch + n - 1 + n - 1 + n - 1 + n - i) - base)%26 + base);
			else if(i == 1 && j != n)
				printf(" %c", ((ch + j -1) - base)%26 + base);
			else if(j == n)
				printf(" %c", ((ch + n - 1 + i - 1) - base)%26 + base);
			else if(i == n && j != n)
				printf(" %c", ((ch + n - 1 + n - 1 + n - j) - base)%26 + base);
			else
				printf("  ");
		}
		printf("\n");
	}
	return 0;
}

【运行截图】



用*输出各种图形(c++版)(正方形,正三角形,倒三角形,菱形) 1.输出正方形 这道题中的边长用N来控制,所以正方形的边长是等于N的,改变N定义的值就可以改变边长。这里我定义统一N为5。 #define N 5 #include<iostream> using namespace std; int main() { int i, j; for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { cout << "* "; } cout << 阅读详情

相关推荐

使用C++for循环打印正三角形、倒三角形、上三角形、菱形、正方形

#使用C++for循环打印正三角形、倒三角形、菱形、正方形 正三角形 总共有五行,故可进行四次循环。在循环里面嵌套打印空格和“ * ”的循环即可。 下面进行分析:第一次打印是三个空格,一颗“ * ”,第二次打印是两个空格,3颗星,第三次打印是1个空格,五颗星;第四次是7颗星。 空格满足由3依次递减,而星满足2n-1的递增数列,此时的n为第几次循环。 for (int i = 1; i <...

weixin_44548678的博客 1万+

for循环写正方形和倒三角形

文章目录一、for循环是什么?二、for循环正方形1.过程分析2.代码演示三、for循环倒三角型1.过程分析2.代码实现 一、for循环是什么? or循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。 二、for循环正方形 1.过程分析 1.输出一个5行5列的正方形 2.行作为外层循环,列作为内存循环。 3.每当外层循环一次时,内层循环5次。 2.代码演示 代码如下: var str = "";

weixin_55743273的博客 2883

C#+Winform+OpenCvSharp实战:5步搞定工业视觉检测框架(附源码下载)

本文详细介绍了如何使用C#、Winform和OpenCvSharp构建工业视觉检测框架,通过5个关键步骤实现高效、稳定的视觉检测系统。内容涵盖环境配置、相机集成、核心算法实现、系统集成与通信,以及部署优化,帮助开发者快速掌握工业视觉检测技术,提升检测精度和效率。附完整源码下载,助力工业数字化转型。

pz89012345的博客 550

C语言小测四题1

1. 输出V 输入图形的行数、以及大写英文字母,输出由字母组成的以下图形。 例如输入: 6 W 输出: #include <stdio.h> int main(int argc, char** argv) { int n, j, i, hang, lie; char a, b; scanf("%d %c", &n, &a); lie = 4*n-2; for(hang = 1; hang<=

本人声明:一切文章博客均可随意转载,全部开源!只要对您有小小的帮助即可。 2428

STM32F0实现数字化SPWM纯正弦波逆变器

这个没啥好说的,搭电路的事。其核心思想是两边桥臂分别由两个180度相位差的正弦波与三角载波比较来控制,优点是在开关器件工作频率一样的情况下,输出PWM频率是单极性SPWM的2倍,能够明显减少谐波,因此只需要相对较小的电感和电容滤波器件就可以起到很好的滤波效果,提升了系统的性能,也精简了系统体积,降低了成本。而双极性pwm则是在整个正弦周期内,四只管子都在高频开关状态工作,对角线上的管子一起导通,另一对角线上管子互补导通,实际上只需要一路互补的PWM控制,负载上电压在正电压和负电压之间切换,不出现0v。

forlifefor的专栏 1万+

ADS 使用调整器动态调参教程(Tuning)

ADS动态调参教程

weixin_42845306的博客 1万+

C语言打印正方形

if (i == 0 || i == a - 1) {//判断左右端点。if (j == 0 || j == a - 1) {//正方形头部尾部判断。for (i = 0;i++) {//正方形内侧执行。= a)//牛客网格式的要求,感觉有点不好评价。

likaiyyds的博客 1138

CiteSpace关键词聚类图谱含义详细解析

CiteSpace关键词聚类图谱含义详细解析 回顾上一次推文:CiteSpace关键词共现图谱含义详细解析 其中有一句: 当你人工已经可以很容易的进行归纳后,就不需要再利用CiteSpace聚类功能啦。 我们来看一下上次推文做出来的关键词共现图谱: 人工不好归纳!那怎么聚类呢? 此时便可使用CiteSpace的聚类功能啦! 如下所示:我们可以清晰地看到上边的关键词共现网络聚成了一个个不规则区域...

qq_39974284的博客 6万+

使用console.log输出特殊字符图案或自定义图片

如何通过控制台输出特殊字符图案,一起来学习吧

前端小白的学习分享小世界 6498

DDR4技术原理详解

DDR4是DDR4-SDRAM的简写,即第4代DDR-SDRAM,DDR-SDRAM全称Double Date Rate Synchronous Dynamic Random Access Memory。本文重点解析DDR4技术规范及其背后的电子电路原理,以及编程使用DDR4过程中需要注意的性能事项。

ctbinzi的专栏 1万+

劳特巴赫 Trace32 调试使用教程

详细介绍如何使用trace32进行调试

m0_56208280的博客 4万+

java中使用for循环去打印正方形,三角形,菱形等图形

1.实心正方形   public class 实心正方形 {   public static void main(String[] args) {  int z=5;  for(int i=0;i    for(int j=0;j    System.out.print("*");  }    System.out.println(

alexsaurora的博客 1万+

基于YOLOv5与改进遗传算法的动态路径规划方法研究

摘要 本文提出一种融合YOLOv5目标检测与改进遗传算法的动态路径规划方法。通过YOLOv5实时感知环境中的动态和静态障碍物,将语义信息转化为栅格地图。针对传统遗传算法在路径规划中易早熟收敛、局部搜索能力差等问题,提出自适应初始化种群策略、动态变异算子及精英保留机制等改进方案。仿真结果表明,该方法在动态环境中能规划出更安全、平滑且长度更优的路径,具有更强的环境适应性和鲁棒性。 关键词:路径规划;YOLOv5;遗传算法;动态环境;目标检测

huanghm88的专栏 939

c语言打印字母围成的正方形,C语言经典题目“输出字母围起的正方形”代码.doc...

C语言经典题目“输出字母围起的正方形”代码输出字母围起的正方形输入N*N图形正方形的边长N,图形左上角的字母,输出由字母围成的空心正方形。输出的字母是顺时针连续的,且是循环的,即输出字母'Z'后输出字母"A"。注意在两个字母之间有一个空格。程序:#include int main(){int n,i,j,t;char m;scanf("%d %c",&n,&m);for(i=0;i...

weixin_33034073的博客 1592

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

1-1 正方形

无论输入的字母是大写或小写,输出的字母均是大写,且字母输出是循环的,即输出 ‘Z’ 后接着输出 ‘A’。输入正整数 n 、正方形左上角的字母,在屏幕上输出如图所示的由大写英文字母围起的空心正方形。(↙表示回车)如输入的左上角字符不是字母,输出“Input error!

2301_77441163的博客 575

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

29【图形】空心字母正方形【北理工乐学C语言作业】

输入正整数 n 、正方形左上角的字母,在屏幕上输出如图所示的由大写英文字母围起的空心正方形。无论输入的字母是大写或小写,输出的字母均是大写,且字母输出是循环的,即输出 ‘Z’ 后接着输出 ‘A’。(↙表示回车)如输入的左上角字符不是字母,输出 “Input error!

blhqqqqq的博客 430

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

N-FX1-1 正方形

输入正整数 n 、正方形左上角的字母,在屏幕上输出如图所示的由大写英文字母围起的空心正方形。无论输入的字母是大写或小写,输出的字母均是大写,且字母输出是循环的,即输出 ‘Z’ 后接着输出 ‘A’ 。(↙表示回车)如输入的左上角字符不是字母,输出“Input error!” 例:输入: 5 m↙ 屏幕输出: M N O P Q↙ N          R↙ O          S↙ P 

bitucas的博客 623

Python学习笔记

')#sayHello 是这个函数的名字,后面的括号里是参数,这里没有,表示不需要参数。但括号和后面的冒号都不能少。下面缩进的代码块就是整个函数的内容,称作函数体。

2402_86606300的博客 861

c语言200例 002 打印一个正方形

002 打印一个正方形

无限大的博客 4158

C++中循环输出正方形

#include<iostream> using namespace std; int main(){ //循环输出一个正方形 int n; cin >>n; for(int i=1;i<=n;i++){ if(i==1||i==n){ for(int j=1;j<=n;j++){ ...

Linwk的博客 3360

解决字符的正方形输出问题

字符的正方形输出 笔者认为:程序的核心是算法,算法的核心是问题中蕴含的规律。而找到最简单的那一条,可以使程序更加简单。 那现在我们来看一下题目: 题目要点为顺时针输出,而且是正方形。 由于输出的不可逆性,所以我们确定必须是一行接一行来进行字符的输出的。 顺时针是比较容易的,我们只要确定输出的数组元素的下标就好了。 关键是正方形,还有数组的长度并不满足刚好为正方形的情况下我们想要在循环中输出靠末尾的数字是毫无头绪的。 对此我们必须对数组进行割断。通过观察发现,满足正方形的元素个数都是4的倍数。所以对于那些

Mpnet的博客 1754

利用JS中的循环语句来实现正方形、长方形、平行四边形、三角形、菱形、空心菱形。

利用JS来制造图形代码1.正方形2.长方形3.平行四边形4.三角形5.菱形6.空心菱形7.效果图总结 代码 1.正方形 代码如下(示例): <script> for (var a=1;a<=10;a++){ document.write("*"); document.write("&emsp;") for (var b=1;b<10;b++){ document.write("*");

StruggleBamboo的博客 4388

for循环输出正方形(java)

qq_47188733的博客 2326

c语言数组之字母方阵

字母方阵 描述 从右上角开始按字母表顺序S型打印由小写字母组成的字母方阵。 输入 一个正整数n (1=<n<=1000)。 输出 按字母表顺序输出n行n列的小写字母组成的方阵,从右上角开始S型循环打印,字母之间用一个空格分割,每行最后一个字母后面没有空格。 输入样例 1 6 输出样例 1 j y x m l a i z w n k b h a v o j c g b u p i d f c t q h e e d s r g f #incl.

Todog的博客 2430

js中循环结构做出长方形,正方形,三角形,平行四边形,菱形,空心菱形

一、在js中通过循环做出图形 用js在网页端通过循环做出各种图形 二、实例 1.正方形 代码如下(示例): for (let i = 0; i < 10; i++) { //输出一行 for (let j = 0; j <10 ; j++) { document.write("* &emsp;") } document.write("<br>") } documen

u456u的博客 3037
上一篇: 穷举-买东西
下一篇: 循环-铺地板
NoNeil
博客等级 码龄15年 108粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值