Untitled
unknown
plain_text
4 years ago
2.0 kB
7
Indexable
#include <stdio.h>
#include <stdlib.h>
float matrix1[3][3];
float matrix2[3][3];
float * matrix3D(char letter, float matrix[3][3]);
void matrixPrint(int r, int c, float *matrix);
float traceMatrix(int r, int c, float matrix[3][3]);
int main(void)
{
int stu_id = 70357003;
/// Q3a
float *Mat_A, *Mat_B;
int row = 3;
int column = 3;
printf("Please enter two 3-by-3 matrices below.\n");
printf("Please enter for the first matrix called 'Mat_A'.\n");
Mat_A = matrix3D('A', matrix1);
printf("Please enter for the second matrix called 'Mat_B'.\n");
Mat_B = matrix3D('B', matrix2);
// Print for checking
printf("<Mat_A>\n");
matrixPrint(row, column, Mat_A);
puts("");
printf("<Mat_B>\n");
matrixPrint(row, column, Mat_B);
/// Q3b
float trace_A, trace_B;
trace_A = traceMatrix(row, column, Mat_A);
trace_B = traceMatrix(row, column, Mat_B);
printf("The trace of Mat_A is %f\n", trace_A);
printf("The trace of Mat_B is %f\n", trace_B);
printf("\n\nStudent ID: %d\n\n", stu_id);
return 0;
}
float * matrix3D(char letter, float matrix[3][3]){
// static float matrix[3][3];
float element;
printf("Please enter the elements row-by-row\n");
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
printf("Mat_%c [%d][%d]: ", letter, i, j);
scanf("%f", &element);
matrix[i][j] = element;
}
}
return matrix;
}
void matrixPrint(int r, int c, float *matrix){
printf("Matrix in 2-D format:\n");
for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
printf("%f ", *(matrix + i*3 + j));
if(j == c - 1){
printf("\n");
}
}
}
}
float traceMatrix(int r, int c, float matrix[3][3]){
float trace;
for(int i = 0; i < r; i++){
trace += matrix[i][i];
}
return trace;
}Editor is loading...