c语言如何输出矩阵蛇形矩阵算法,如图

由蛇形矩阵1上面红色部分突然有鉯下两个问题需要进一步讨论

问题1. 如何输出矩阵中对角线位置上的数字

解:①输出主对角线代码

问题2. 如何按顺序输出矩阵中对角线两侧位置上的数字?

解:①输出副对角线左侧(j=3)的元素顺序为:左下->右上

总结:这么两道题我做了将近两个小时,反思一下自己就是因为呮看而不动手只执行而不寻求规律。编程题重在寻找规律创建公式。例如本博文第一个代码:红色标记部分:j+i-n的作用是实现行变化    n-j实現列数变化这两个是如何实现的,很简单运用公式:

为什么等于这个结果呢?为了方便观察我们给ab赋值如下:a=5b=5

i)最后一列的元素中荇为偶数的16 的行a=1(因计算机中矩阵存在二维数组a=0),列为b=4;

跳出j循环执行i++;

ii)最后一列的元素中行为偶数的23 的行a=3,列b=4;

当行数为偶数时蛇不改变方向(还没有跳出j的循环如ii)和iii)所示)移动位置由右上->左下,a递增1b递减1;a=j+i-n   ,b=n-j;

当行数为奇数时移动位置由左下->右上,b递增1a递减1;此时将原来的a,b值互换达到效果a=n-j   ,b= j+i-n;

还有个规律:因为每换一条对角线a+b的值就多1所以a+b=i,恒等于(因为在最外循环i执行i++语句)也就是说当你写完公式如果a+b!=i,那么你肯定有错误出现了

肯定有不完整不规范的地方,希望提出问题我愿虚心接受。

加载中请稍候......

我要回帖

更多关于 c语言如何输出矩阵 的文章

 

随机推荐