Files

91 lines
1.5 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <stdbool.h>
// !二维数组
/*
int a[3][5];
通常理解为a是一个3行5列的矩阵
*/
// !二维数组的遍历
/*
for ( i=0; i<3; i++)
{
for ( j=0; j<5; j++ )
{
a[i][j] = i*j;
}
}
a[i][i]是一个int
表示第i行第j列上的单元
但a[i,j]是数学上表示a是一个i行j列的矩阵,在C语言是a[i][j]
*/
// !二维数组的初始化
/*
nt a[] [5] =
{
{0,1,2,3,4},
{2,3,4,5,6
};
列数是必须给出的,行数可以由编译器来数每行一个,逗号分隔
最后的逗号可以存在,有古老的传统
如果省略,表示补零
也可以用定位(*C99 标准)
*/
// !输入l行m列的矩阵
void matrix_produce(int l, int m, int a[l][m])
{
int i, j;
for (i = 0; i < l; i++)
{
for (j = 0; j < m; j++)
{
scanf("%d", &a[i][j]);
}
}
}
// !打印l行n列的矩阵
void matrix_print(int l, int n, int c[l][n])
{
int i, j;
for (i = 0; i < l; i++)
{
for (j = 0; j < n; j++)
{
printf("%d ", c[i][j]);
}
printf("\n");
}
}
int main(void)
{
int l, m;
printf("请输入矩阵的行数l和列数m");
scanf("%d %d", &l, &m);
int a[l][m];
int b[m][l];
printf("请输入%d行%d列的矩阵数据:\n", l, m);
matrix_produce(l, m, a);
for (int i = 0; i < l; i++)
{
for (int j = 0; j < m; j++)
{
b[j][i] = a[i][j];
}
}
printf("转置后的矩阵为:\n");
matrix_print(m, l, b);
return 0;
}