c语言回型矩阵
A. C语言:输出一个4*5的循环矩阵
按照你的要求编写的C语言4*5的循环矩阵的程序如下
#include<stdio.h>
int main(){
int a[]={1,2,3,4,5};
int i,j;
for(i=0;i<4;i++){
for(j=5-i;j<5;j++){
printf("%d ",a[j]);
}
for(j=0;j<5-i;j++){
printf("%d ",a[j]);
}
printf("\n");
}
return 0;
}如果需要存储在二维数组中,可以看看下面的C语言程序
#include<stdio.h>
int main(){
int a[]={1,2,3,4,5},b[4][5];
int i,j,k;
for(i=0;i<4;i++){
k=0;
for(j=5-i;j<5;j++,k++){
b[i][k]=a[j];
}
for(j=0;j<5-i;j++,k++){
b[i][k]=a[j];
}
}
for(i=0;i<4;i++){
for(j=0;j<5;j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}运行结果
B. C语言中如何定义矩阵
两种方式可以参考:
1、最简单的就是二维数组,比如存储全是整形的一个m*n的矩阵。然后可以定义int a[m][n]。
输入或者输出可以用两层循环来完成,外层控制行m比如for(i=0;i<m;++i),内层控制列n比如for(j=0;j<n;++j);
2、第二种方式就是压缩矩阵进行存储,如果学了数据结构应该比较好理解。
结构体进行封装,比如:
第一步:先定义一个有效数据的位置
typedef struct node
{
int hang;int lie;int data;//用来存储一个有效数据位的行列和值
}node;
typedef struct matrix
{
node *m;//一个数组,用来存储所有的node数据
int sum;//记录一共有多少个有效数据位
}matrix;