矩阵常用运算,c语言程序设计
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/01 00:34:36
矩阵常用运算,c语言程序设计
有一个3*3矩阵,要求实现以下功能:
1、输入一个3*3矩阵
2、输出该矩阵
3、求出其对角线元素之和
4、求出其最大元素及所在行号、列号
5、求出其最小元素行号、列号
6、求出其转置矩阵
7、退出
有一个3*3矩阵,要求实现以下功能:
1、输入一个3*3矩阵
2、输出该矩阵
3、求出其对角线元素之和
4、求出其最大元素及所在行号、列号
5、求出其最小元素行号、列号
6、求出其转置矩阵
7、退出
![矩阵常用运算,c语言程序设计](/uploads/image/z/1024199-71-9.jpg?t=%E7%9F%A9%E9%98%B5%E5%B8%B8%E7%94%A8%E8%BF%90%E7%AE%97%2Cc%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)
#include
#define N 3
void main()
{
int i,j, sum = 0; int a[N][N], b[N][N];
int max , min,row_max = 0, col_max = 0, row_min = 0,col_min = 0;
printf("请输入矩阵的元素:");
for( i = 0; i < N; i++ )
for( j = 0; j < N; j++ ) scanf("%d",&a[i][j]);
printf("原始矩阵为:\n");
for( i = 0; i < N; i++ )
{
for( j = 0; j < N; j++ )
printf("%5d",a[i][j]);
printf("\n");
}
for( i =0; i < N; i++ )
sum += a[i][i];
printf(" 主对角线元素之和为: %d\n",sum);
max = a[0][0], min = a[0][0];
for( i = 0; i < N; i++ )
for( j = 0; j < N; j++ )
{
if( a[i][j] < min ) {min = a[i][j]; row_min = i; col_min = j; }
if( a[i][j] > max ){ max= a[i][j]; row_max = i; col_max = j;}
}
printf(" 最大元素为:%d,其所在行数为:%d,所在列数为:%d\n",max,row_max+1,col_max+1);
printf(" 最小元素为:%d,其所在行数为:%d,所在列数为:%d\n",min,row_min+1,col_min+1);
for( i = 0; i < N; i++ )
for( j = 0; j < N; j++ )
b[i][j] = a[j][i];
printf("矩阵a的转置矩阵为:\n");
for( i = 0; i < N; i++ )
{
for( j = 0; j < N; j++ )
printf("%5d",b[i][j]);
printf("\n");
}
}
再问: #define N 3���ǻ�ûѧ�����ܲ��ܲ��������лл
再答: ���Բ�����ʵ���������һЩ����͵����㶨����һ��������ֵΪ3. ���¹�����ʱ������������е�N���ij�3�����ˣ������������鷳�ģ�������#define N 3���һЩ����������������10���������ʱ��ֻҪ��N���3�ij�10�Ϳ����ˣ�����һ��һ���ĵط���ȥ�����ģ���
#define N 3
void main()
{
int i,j, sum = 0; int a[N][N], b[N][N];
int max , min,row_max = 0, col_max = 0, row_min = 0,col_min = 0;
printf("请输入矩阵的元素:");
for( i = 0; i < N; i++ )
for( j = 0; j < N; j++ ) scanf("%d",&a[i][j]);
printf("原始矩阵为:\n");
for( i = 0; i < N; i++ )
{
for( j = 0; j < N; j++ )
printf("%5d",a[i][j]);
printf("\n");
}
for( i =0; i < N; i++ )
sum += a[i][i];
printf(" 主对角线元素之和为: %d\n",sum);
max = a[0][0], min = a[0][0];
for( i = 0; i < N; i++ )
for( j = 0; j < N; j++ )
{
if( a[i][j] < min ) {min = a[i][j]; row_min = i; col_min = j; }
if( a[i][j] > max ){ max= a[i][j]; row_max = i; col_max = j;}
}
printf(" 最大元素为:%d,其所在行数为:%d,所在列数为:%d\n",max,row_max+1,col_max+1);
printf(" 最小元素为:%d,其所在行数为:%d,所在列数为:%d\n",min,row_min+1,col_min+1);
for( i = 0; i < N; i++ )
for( j = 0; j < N; j++ )
b[i][j] = a[j][i];
printf("矩阵a的转置矩阵为:\n");
for( i = 0; i < N; i++ )
{
for( j = 0; j < N; j++ )
printf("%5d",b[i][j]);
printf("\n");
}
}
再问: #define N 3���ǻ�ûѧ�����ܲ��ܲ��������лл
再答: ���Բ�����ʵ���������һЩ����͵����㶨����һ��������ֵΪ3. ���¹�����ʱ������������е�N���ij�3�����ˣ������������鷳�ģ�������#define N 3���һЩ����������������10���������ʱ��ֻҪ��N���3�ij�10�Ϳ����ˣ�����һ��һ���ĵط���ȥ�����ģ���