求一个C语言程序设计:螺旋矩阵.

该程序包含如下四个功能:
(1)将螺旋方阵存放到二维数组中并把它输出,要求由程序自动生成螺旋方阵(而不是人为地初始化或逐个赋值)。螺旋方阵的形式为:

注意:要同时输出如上的两个并排的矩阵。
(2) 求这两个矩阵的和
(3) 求这两个矩阵的乘积
求螺旋矩阵:
(1)矩阵的存储:二维数组;
(2)注意循环控制变量和数组下标的关系,从中找出规律;
(3)设置一个变量,生成自然数:1、2、3……。
注:程序一定要是C语言,程序中要加必要的注释
将程序发到邮箱977684555@qq.com

第1个回答  2011-06-21
螺旋矩阵:
#include<stdio.h>
main()
{
int a,b,k,n,i,j,a1,b1,m;
int lines[50][50];
scanf("%d",&n);
i=j=0;a=b=n;a1=b1=0;k=1;
if(n==1)
printf(" 1\n");
else
{
for(m=1;m<2*n;m++)
{
if(m%4==1)
{
for(;j<b;j++)
{
lines[i][j]=k;
k++;
}
i++;
j--;
b--;
}
else if(m%4==2)
{
for(;i<a;i++)
{
lines[i][j]=k;
k++;
}
j--;
i--;
a--;
}
else if(m%4==3)
{
for(;j>=b1;j--)
{
lines[i][j]=k;
k++;
}
i--;
j++;
b1++;
}
else
{
for(;i>=a1+1;i--)
{
lines[i][j]=k;
k++;
}
j++;
i++;
a1++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{ if(j==0)printf(" %2d ",lines[i][j]);
else if(j==n-1)printf("%2d",lines[i][j]);
else
printf("%2d ",lines[i][j]);
}
printf("\n");
}
}
}
和的话加一下就是了;
至于你说的那些个积什么的,比较麻烦。自己再弄弄吧。本回答被提问者采纳
相似回答