慕课第九周_蛇形矩阵

程序运行结果示例1:

Input n:

5↙

1 2 6 7 15

3 5 8 14 16

4 9 13 17 22

10 12 18 21 23

11 19 20 24 25

程序运行结果示例2:

Input n:

4↙

1 2 6 7

3 5 8 13

4 9 12 14

10 11 15 16

#include <stdio.h>
#define N 10
void ZigzagMatrix(int a[N][N],int n);
int main()
{
	int a[N][N],n;
	printf("Input n:\n");
	scanf("%d",&n);
	if(n>0 && n<100)
	{
		ZigzagMatrix(a,n);	
	}
	else
	{
		printf("Input error!\n");
	}
	return 0;
}
void ZigzagMatrix(int a[][N],int n)
{
	int hang,lie,round;
    int count = 1;
    if(1 == n)
    {
        a[0][0] = count;
    }
    else
    {
        for(round = 1;round <= n;round++)
        {
			if(round%2==0)//偶数圈数列向斜上方递增
			{
				for(lie = 0;lie < round;lie++)
				{
					a[round - 1 - lie][lie] = count;
					count++;
				}
			}
			else//奇数圈数列向斜下方递增
			{
					for(lie = 0;lie < round;lie++)
				{
					a[lie][round - 1 - lie] = count;
					count++;
				}
			}

        }
 
        for(;round <= 2 * n - 1;round++)
        {
			if(round%2==0)
			{
				for(lie = round - n;lie < n;lie++)
				{
					a[round - 1 - lie][lie] = count;
					count++;
				}
			}
			else
			{
				for(lie = round - n;lie < n;lie++)
				{
					a[lie][round - 1 - lie] = count;
					count++;
				}
			}

        }
    }
 
    for(hang= 0;hang < n;hang++)
    {
        for(lie = 0;lie < n;lie++)
        {
            printf("%4d",a[lie][hang]);
        }
        printf("\n");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大连理工大学的C语言慕课第六内容主要涵盖了指针和内存管理的相关知识。在这一的学习中,我们首先对指针进行了详细的介绍和讲解。 指针是C语言中非常重要的概念之一,它可以用来存储变量的地址。通过指针,我们可以实现对变量的直接访问和操作,从而能够更加灵活地处理数据。在慕课中,我们学习了如何声明指针变量、如何使用指针进行内存地址的引用和解引用等基本操作。 在理解了指针的基本概念后,我们进一步学习了指针的高级应用,比如指针与数组之间的关系。通过指针与数组结合使用,我们能够实现更加高效的数组遍历和操作,减少了程序的运行时间和空间开销。 同时,慕课中还介绍了指针的指针和指针的数组的概念。这些概念的学习使得我们能够更加灵活地处理多维数组和多级指针的情况,拓宽了我们的编程思路和解决问题的能力。 与指针相关的知识点之一就是内存管理。在慕课中,我们学习了动态内存分配的相关函数,比如malloc、calloc和realloc等。这些函数使得我们能够在程序运行过程中动态地分配和释放内存空间,提高了程序的灵活性和效率。 在大连理工大学的C语言慕课第六中,我们不仅学习了指针的基本概念和操作,还深入了解了指针的高级应用和内存管理的知识。通过学习这些内容,我们能够更加熟练地运用指针进行编程,提高程序的性能和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值