C语言每日一题—魔幻矩阵

这篇具有很好参考价值的文章主要介绍了C语言每日一题—魔幻矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

魔幻矩阵
编程实现9*9以内任意奇数阶方阵的魔幻矩阵。
所谓奇数魔幻矩阵就是n*n的矩阵(n为奇数)的n*n个格子中放入数1到n*n,使得每行、每列、主对角线、付对角线上元素的和都相等。算法生成如下::
1 ,第一个数字在第一行的中间位置
2,以后每一个数放在前一个数的右上方,,如果向上超出了界限,在矩阵的最后一行插入,列不变;,如果右侧超出了界限,在矩阵的最左边插入,行不变。
3.如果插入数的位置已经有数,则在前一个数的下方插入。.
5*5魔幻矩阵:
17 24  1  8 15
23  5  7 14 16
 4  6 13 20 22
10 12 19 21  3
11 18 25  2  9
输入提示:"input Magic matrix n:"
输入格式:"%d"
输出格式:"%4d"

程序运行示例:
input Magic matrix n:4
   9  15   1   7
  14   4   6   8
   3   5  11  13
   0  10  12   2
#include<stdio.h>

int main()
{
    int a[9][9]={0},i,j=0,n;
    printf("input Magic matrix n:");
    scanf("%d",&n);
    int k;
    if(n%2!=0) k=(n-1)/2;
    else k=n/2;
    for(i=1;i<=n*n;i++)//n*n个数,从1开始依次填入矩阵
    {
        if(j<0) j=n-1;//j代表行,当j<0时,j为最后一行
        if(k>n-1) k=0;//k代表列,当k>n-1时,k变为第一列
        if(a[j][k]==0)//判断该位置是否已经填入了数字,若没填,则填入
        {
            a[j][k]=i;
        }
        else//若已经填入了数字,则填到前一个数的下方
        {
            j=j+1+1;//j+1为前一个数的行,j+1+1为前一个数的下方
            k=k-1;//k-1为前一个数的列
            if(j>n-1) j=j-n;//当j=n或者n+1时,实际上为第一行和第二行
            if(k<0) k=n-1;//当k=-1时,实际上k=n-1即最后一列
            a[j][k]=i;
        }
        j=j-1;
        k=k+1;
    }
    for(i=0;i<n;i++)//打印该魔幻矩阵
    {
        for(j=0;j<n;j++)
        {
            printf("%4d",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

文章来源地址https://www.toymoban.com/news/detail-854912.html

到了这里,关于C语言每日一题—魔幻矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”

    各位CSDN的uu们你们好呀,今天继续数据结构与算法专栏中的二叉树,下面,让我们进入二叉树的世界吧!!! 二叉树(上)——“数据结构与算法”_认真学习的小雅兰.的博客-CSDN博客 二叉树链式结构的实现 二叉树链式结构的实现 求二叉树的高度 但是这种写法有很大的问题

    2024年02月17日
    浏览(38)
  • 【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难

    原题链接 给定一个长度为 n n n 的数组,将这个数组进行拆分成若干个连续子数组, 使得每个子数组的最大值减去最小值小于等于 s s s , 且每个子数组的长度大于等于 l e n len l e n 。 问最少可以拆分成多少个连续子数组,如果不可以,则输出 − 1 -1 − 1 1 ≤ n , l e n ≤ 1 0

    2024年02月06日
    浏览(49)
  • 【每日一题】——矩阵相等判定

    🌏博客主页: PH_modest的博客主页 🚩当前专栏: 每日一题 💌其他专栏: 🔴 每日反刍 🟢 读书笔记 🟡 C语言跬步积累 🌈座右铭: 广积粮,缓称王! 描述: KiKi得到了两个n行m列的矩阵,他想知道两个矩阵是否相等,请你回答他。(当两个矩阵对应数组元素都相等时两个矩

    2023年04月09日
    浏览(42)
  • ( 数组和矩阵) 566. 重塑矩阵 ——【Leetcode每日一题】

    难度:简单 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同( r x c )的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要

    2024年02月07日
    浏览(39)
  • 【LeetCode每日一题】——566.重塑矩阵

    矩阵 简单 566.重塑矩阵 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后

    2024年02月14日
    浏览(46)
  • 力扣每日一题73:矩阵置零

    给定一个  m x n  的矩阵,如果一个元素为  0  ,则将其所在行和列的所有元素都设为  0  。请使用  原地  算法 。 示例 1: 示例 2: 提示: m == matrix.length n == matrix[0].length 1 = m, n = 200 -231 = matrix[i][j] = 231 - 1 进阶: 一个直观的解决方案是使用   O( m n )  的额外空间,但这并

    2024年02月06日
    浏览(37)
  • Python:每日一题之矩阵拼接

    问题描述 已知 3 个矩形的大小依次是 a1​×b1​,a2​×b2​ 和 a3​×b3​ 。 用这 3 个矩形能拼 出的所有多边形中, 边数最少可以是多少? 例如用 3×2 的矩形(用 A 表示)、 4×1 的矩形 (用 B 表示) 和 2×4 的矩 形(用 C 表示)可以拼出如下 4 边形。   例如用 3×2 的矩形 (用

    2024年02月11日
    浏览(37)
  • ( 数组和矩阵) 766. 托普利茨矩阵 ——【Leetcode每日一题】

    难度:简单 给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 示例 1: 输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]] 输出:true 解释: 在上述矩阵

    2024年02月02日
    浏览(39)
  • 每日一题 第五十七期 洛谷 统计子矩阵

    给定一个 N × M N times M N × M 的矩阵 A A A ,请你统计有多少个子矩阵 (最小 1 × 1 1 times 1 1 × 1 , 最大 N × M ) N times M) N × M ) 满足子矩阵中所有数的和不超过给定的整数 K K K 。 第一行包含三个整数 N , M N, M N , M 和 K K K 。 之后 N N N 行每行包含 M M M 个整数, 代表矩阵 A A A 。 一

    2024年04月23日
    浏览(36)
  • LeetCode·每日一题·2679. 矩阵中的和·排序

    作者:小迅 链接:https://leetcode.cn/problems/sum-in-a-matrix/solutions/2330084/pai-xu-zhu-shi-chao-ji-xiang-xi-by-xun-g-a3gw/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。     题意 - 给定一个二维数组,每次取每一行的最大值构成一列,在该列

    2024年02月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包