代码编织梦想

hello!,你们好
今天呢,我给大家写的是书上的一道课后习题,因为老师当时布置的,所以也就完成了

个人感觉和书上的例题是很相似的(算法设计与分析第三版82页),几乎没什么大的改变,如果你没有学会呢,估计是上课没有认真听哦!!,看完我的代码,希望你回去再好好看书
加油!少年!别停下脚步!
具体的思路呢,也和书上的差不多,小白代码,大神勿喷。
好了 咱们上代码

#include<stdio.h>
#include<stdlib.h>
void test()
{
	int i, j, a[50][50], n, k;
	printf("请输入一个矩阵(?*?)\n");
	scanf_s("%d", &n);
	k = 1;
	for (i = 1; i <= n / 2; i++)
	{
		for (j = i; j <= n -i+1; j=j+1)//上方
		{
			a[i][j] = k;
			k=k+1;
		}
		for (j = i+1; j <= n - i+1; j=j+1)//右侧
		{
			a[j][n + 1 - i] = k;
			k=k+1;
		}
		for (j = n -1; j >= i ; j=j-1)//下方
		{
			a[n + 1 - i][j] = k;
			k=k+1;
		}
		for (j = n -i; j >= i+1; j=j-1)
		{
			a[j][i] = k;
			k=k+1;

		}
	}
	if (n % 2 == 1)
	{
		i = (n + 1) / 2;
		a[n/2+1][n/2+1] = n * n;
	}
	for (i = 1; i <= n; i++)
	{
		printf("\n");
		for (j = 1; j <= n; j++)
			printf("%3d", a[i][j]);
	}
	
}
int  main()
{
	test();
	return 0;
}

希望还没有明白的同学,看完我的代码后仔细想想
我觉得聪明的你们没有问题的!
加油加油!冲!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/m0_46472878/article/details/111106948

Java实现七种【排序算法】+图解+完整代码+分析-爱代码爱编程

参考书目:《大话数据结构》 本文涉及的排序算法 一、冒泡排序(优化版)二、简单选择排序三、直接插入排序四、希尔排序五、堆排序六、归并排序(递归版)+归并排序(递归优化版)七、快速排序+快速排序(四度优化版)End.总结 一、冒泡排序(优化版) 0.基本思想:一种交换排序,两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录位置。

为什么 HashMap 的加载因子是0.75?数学的运用!-爱代码爱编程

作者:sunnylovecmc 来源:https://blog.csdn.net/sunny243788557/article/details/109603806 有很多东西之前在学的时候没怎么注意,笔者也是在重温HashMap的时候发现有很多可以去细究的问题,最终是会回归于数学的,如HashMap的加载因子为什么是0.75? 本文主要对以下内容进行

Leetcode 538 题 把二叉搜索树转换为累加树-爱代码爱编程

题目来源:https://leetcode-cn.com/problems/convert-bst-to-greater-tree/ 个人公众号:小猿君的算法笔记 题目描述 给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和

1.5静态链表的表示与实现-爱代码爱编程

1.5静态链表的表示与实现 静态链表可用一维数组来描述,用游标模拟指针。游标的作用就是指示元素的直接后继。这里的游标的数据类型不是动态链表的指针类型,而是整型数字。 代码实现: SLinkList.h #pragma once #include <stdio.h> #include <stdlib.h> #define L

算法-中级-爱代码爱编程

滑动窗口 1.假设一个固定大小为w的窗口,一次划过arr,返回每一次划出状况的最大值 例如,arr=[4,3,5,4,3,3,6,7],w=3 返回[5,5,5,4,6,7] import java.util.Arrays; import java.util.LinkedList; public class Main { public s

JavaScript 最长公共前缀 力扣 探索字节跳动-爱代码爱编程

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 思路:当

1.3循环单链表之约瑟夫问题-爱代码爱编程

1.3循环单链表之约瑟夫问题 循环单链表 1、与单链表类似,循环单链表也有带头和不带头。循环单链表不为空时,尾结点指针域为头结点。为空时,头指针的指针域指向它本身。 2、带头结点的循环单链表为空的判断条件是head->next==head; 3、有时为了操作方便,循环单链表中只设尾指针。 约瑟夫问题: 有n个人,编号为1----n,围成一

PAT 1009 说反话-爱代码爱编程

1009 说反话 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。 输出格式: 每个测试用例的输出占一行

c语言实现时间片轮转调度算法-爱代码爱编程

#include <stdio.h>//引入输入输出流文件 #include <stdlib.h> struct PCB { int pid;//进程标识符 int rr;//已运行时间 int time;//进程要求运行时间 char sta;//进程的状态 struct PCB *next;//链接指针 }; struct PC

链表的基本操作#周报-爱代码爱编程

链表的基本操作 在说链表之前,我们先说说顺序存储。其中我们最熟悉的一种顺序存储的数据结构就是数组,当我们想要给数组中插入一个元素时,为保证顺序以及其他元素不丢失,我们需要在插入元素后,将后面的元素整体后移。所以容易看出这样有着这两个弊端:第一:我们所需要移动的元素有很多时,会浪费算力。第二:我们必须为数组开足够多的空间,否则会存在溢出风险。 为了避免这

CSUC语言期中考试 小帅疯狂搞事-爱代码爱编程

CSUC语言期中考试题解析 1.小帅搞的第一件事 给小帅一个字符串,由大写字母构成,每个字母限用一次,请问最多能组成多少个CSU。 本题大致上与考试模拟题虚空之力类似,统计C、S、U中的最小值即可。 见代码: #include <stdio.h> int main() { int i; int min; int x=0,y=0,z=

7-1将数组中的数逆序存放-爱代码爱编程

应同学请求,将大一曾经做过的一些作业题目再发出来,因时间有限就不再一一做注释了,在这里只放置题目和代码,寒假的时候会再对每个题目进行详细的注释,并更新一些新的题目 7-1 将数组中的数逆序存放 (20分) 本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。 输入格式: 输入在第一行中给出一个正整数n(