Untitled

 avatar
unknown
plain_text
4 years ago
2.4 kB
6
Indexable
#include <stdio.h>
#include <stdlib.h>

void printMatrix(int *matrix, int row, int column);
int largestValue(int *matrix, int row, int column, int *largest_row, int *largest_column);

int main(void)
{
    int stu_id = 70357003;

    int r, c;
    printf("Enter the size of row for a matrix: ");
    scanf("%d", &r);
    printf("Enter the size of column for a matrix: ");
    scanf("%d", &c);

    int mat[r][c];

    for(int i = 0; i < r; i++){
        for(int j = 0; j < c; j++){
            printf("Enter value for Matrix[%d][%d]: ", i+1, j+1);
            scanf("%d", &mat[i][j]);
        }
    }

    printMatrix(mat, r, c);

    int largest_row, largest_column;
    int max = largestValue(mat, r, c, &largest_row, &largest_column);
    printf("The largest value in this matrix is: %d\n", max);
    printf("The index of this value is Matrix[%d][%d]\n", largest_row, largest_column);

    printf("\n\nStudent ID: %d\n\n", stu_id);
    return 0;
}

void printMatrix(int *matrix, int row, int column){
    printf("Matrix in 2D format:\n");
    int count = 0;
    for(int i = 0; i < row; i++){
        for(int j = 0; j < column; j++){
            printf("%d ", *(matrix + count));
            if(j == column - 1){
                printf("\n");
            }
            count++;
        }
    }
}

int largestValue(int *matrix, int row, int column, int *largest_row, int *largest_column){
    int temp_arr[100], count = 0;

    // Converting 2D array into 1D array
    for(int i = 0; i < row; i++){
        for(int j = 0; j < column; j++){
            temp_arr[count] = *(matrix + i*column + j);
            count++;
        }
    }

    // Bubble sort to obtain largest value
    for(int i = 0; i < count; i++){
        for(int j = 0; j < count - i - 1; j++){
            if(temp_arr[j] > temp_arr[j+1]){
                int temp = temp_arr[j];
                temp_arr[j] = temp_arr[j+1];
                temp_arr[j+1] = temp;
            }
        }
    }

    int largest_value = temp_arr[count-1];

    // Find max row and max column
    for(int i = 0; i < row; i++){
        for(int j = 0; j , column; j++){
            if(*(matrix + i*column + j) == largest_value){
                largest_row = i+1; // index of matrix have to + 1
                largest_column = j+1;
            }
        }
    }
    return largest_value;
}
Editor is loading...