
1 3 4
2 5
6。。。。
这是有规律的,1,2,3,4,5,6。。。。位置也有规律。程序有解释。所以我们可以
用数组来实现。
程序和解释如下:
#include "stdioh"void main()
{
int a[20][20],i,j,c=1,x=1,n,s=0;
printf("请输入n的值:\n");
scanf("%d",&n);
while(c<=n(n+1)/2)
{
for(i=s,j=0;i>=0,j<=s;i--,j++)
{
if(s%2!=0) a[i][j]=c++;//无论n值为多少,规律(奇偶性与递增递减之间的关系)不变。
else a[j][i]=c++;
}
s++;
}//此为左上部分。
while(c<=nn)
{
for(i=x,j=s-1;i<=s-1,j>=x;i++,j--)
{
if(n%2==0)/这里因为n值的奇偶性影响了规律(奇偶性与递增递减之间的关系)
所以要对n值得奇偶性进行判定/
{
if(x%2!=0) a[i][j]=c++;
else a[j][i]=c++;
}
else
{
if(x%2==0) a[i][j]=c++;
else a[j][i]=c++;
}
}
x++;
}//此为右下部分。
for(i=0;i<n;i++)//输出二维数组a[n][n],输出蛇形矩阵。
{
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
代码如下, 可以利用矩阵的乘方运算, 引入变量temp保存乘方的结果
for i=1:n
temp=c^i;
a(i)=btempd;
end
希望能帮到你, ^^
c++中一般使用一维数组来表示二维乃至更多维的矩阵。里面涉及到动态内存分配的问题
=
int n;
int matrix=new int[nn]; // 动态声明一个大小为nn的数组
for(int i =0;i<10;++i) //赋值 *** 作
matrix[i]=i+1;
这样matrix里面依次放着从1到9。
输出的时候只以每三个一个endl就行了。
结束的时候注意要注意释放空间
delete[] matrix;
用numpy库(你得自己安装这个库,科学计算经常用得着)
矩阵运算大大简化
from numpy importa = array([(1,2),(3,4)])
b = array([(4,3),(2,1)])
a + b
以上就是关于C语言 蛇形矩阵源程序写法全部的内容,包括:C语言 蛇形矩阵源程序写法、matlab 矩阵连乘程序如何写想在一个for循环里实现、用C++编写一段程序,输入n时,就输出一个二维矩阵,如何写新手求教育。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)