#include <stdio.h>
#include <stdlib.h>
#define MATRIX_ROWS 7
#define MATRIX_COLS 7
double **createMatrix(void)
{
double **rows
= calloc(MATRIX_ROWS
,sizeof(double*)); for(register int x = 0;x<MATRIX_ROWS;x++)
{
rows
[x
] = calloc(MATRIX_COLS
,sizeof(double)); }
return rows;
}
void populateMatrix(double **matrix)
{
for(register int x = 0;x<MATRIX_ROWS;x++)
{
for(register int y = 0;y<MATRIX_COLS;y++)
{
matrix
[x
][y
] = (rand() % 10) + (double)(rand() % 10)/10; }
}
}
void printMatrix(double **matrix)
{
for(register int x = 0;x<MATRIX_ROWS;x++)
{
for(register int y = 0;y<MATRIX_COLS;y++)
{
}
}
}
void getMin(double **matrix)
{
puts("\t\tFinding mins"); double min;
for(register int x = 0;x<MATRIX_ROWS;x++)
{
min = matrix[x][0];
for(register int y = 0;y<MATRIX_COLS;y++)
{
if(matrix[x][y] < min)
{
min = matrix[x][y];
}
}
printf("Row #%d, Min element: %.1f\n",x
+1,min
); }
}
int getNextMin(double **matrix)
{
puts("\t\tFinding next mins"); return 0;
}
int main(void)
{
double **matrix = createMatrix();
populateMatrix(matrix);
printMatrix(matrix);
getMin(matrix);
int minNextCount = getNextMin(matrix);
//code here
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2RlZmluZSBNQVRSSVhfUk9XUyA3CiNkZWZpbmUgTUFUUklYX0NPTFMgNwpkb3VibGUgKipjcmVhdGVNYXRyaXgodm9pZCkKewogICAgZG91YmxlICoqcm93cyA9IGNhbGxvYyhNQVRSSVhfUk9XUyxzaXplb2YoZG91YmxlKikpOwogICAgZm9yKHJlZ2lzdGVyIGludCB4ID0gMDt4PE1BVFJJWF9ST1dTO3grKykKICAgIHsKCXJvd3NbeF0gPSBjYWxsb2MoTUFUUklYX0NPTFMsc2l6ZW9mKGRvdWJsZSkpOwogICAgfQogICAgcmV0dXJuIHJvd3M7CiAgICB9CnZvaWQgcG9wdWxhdGVNYXRyaXgoZG91YmxlICoqbWF0cml4KQp7CiAgICBmb3IocmVnaXN0ZXIgaW50IHggPSAwO3g8TUFUUklYX1JPV1M7eCsrKQogICAgewoJZm9yKHJlZ2lzdGVyIGludCB5ID0gMDt5PE1BVFJJWF9DT0xTO3krKykKCSAgICB7CgkJbWF0cml4W3hdW3ldID0gKHJhbmQoKSAlIDEwKSArIChkb3VibGUpKHJhbmQoKSAlIDEwKS8xMDsKCQl9Cgl9CiAgICB9CnZvaWQgcHJpbnRNYXRyaXgoZG91YmxlICoqbWF0cml4KQp7CiAgICBwdXRzKCJcdFx0TWF0cml4Iik7CiAgICAgZm9yKHJlZ2lzdGVyIGludCB4ID0gMDt4PE1BVFJJWF9ST1dTO3grKykKCXsKCXByaW50ZigiUm93ICMlZDogIix4KzEpOwoJZm9yKHJlZ2lzdGVyIGludCB5ID0gMDt5PE1BVFJJWF9DT0xTO3krKykKCSAgICB7CgkJcHJpbnRmKCIlLjFmICIsbWF0cml4W3hdW3ldKTsKCQl9CglwdXRzKCIiKTsKCX0KICAgIH0Kdm9pZCBnZXRNaW4oZG91YmxlICoqbWF0cml4KQp7CiAgICBwdXRzKCJcdFx0RmluZGluZyBtaW5zIik7CiAgICBkb3VibGUgbWluOwogICAgZm9yKHJlZ2lzdGVyIGludCB4ID0gMDt4PE1BVFJJWF9ST1dTO3grKykKCXsKCW1pbiA9IG1hdHJpeFt4XVswXTsKCWZvcihyZWdpc3RlciBpbnQgeSA9IDA7eTxNQVRSSVhfQ09MUzt5KyspCgkgICAgewoJCWlmKG1hdHJpeFt4XVt5XSA8IG1pbikKCQkgICAgewoJCQltaW4gPSBtYXRyaXhbeF1beV07CgkJCX0KCQl9CglwcmludGYoIlJvdyAjJWQsIE1pbiBlbGVtZW50OiAlLjFmXG4iLHgrMSxtaW4pOwoJcHV0cygiIik7Cgl9CiAgICB9CmludCBnZXROZXh0TWluKGRvdWJsZSAqKm1hdHJpeCkKewogICAgcHV0cygiXHRcdEZpbmRpbmcgbmV4dCBtaW5zIik7CiAgICByZXR1cm4gMDsKICAgIH0KCQkKaW50IG1haW4odm9pZCkKCXsKCQlkb3VibGUgKiptYXRyaXggPSBjcmVhdGVNYXRyaXgoKTsKCQlwb3B1bGF0ZU1hdHJpeChtYXRyaXgpOwoJCXByaW50TWF0cml4KG1hdHJpeCk7CgkJZ2V0TWluKG1hdHJpeCk7CgkJaW50IG1pbk5leHRDb3VudCA9IGdldE5leHRNaW4obWF0cml4KTsKCQkvL2NvZGUgaGVyZQoJCXJldHVybiAwOwoJCX0K
Matrix
Row #1: 3.6 7.5 3.5 6.2 9.1 2.7 0.9
Row #2: 3.6 0.6 2.6 1.8 7.9 2.0 2.3
Row #3: 7.5 9.2 2.8 9.7 3.6 1.2 9.3
Row #4: 1.9 4.7 8.4 5.0 3.6 1.0 6.3
Row #5: 2.0 6.1 5.5 4.7 6.5 6.9 3.7
Row #6: 4.5 2.5 4.7 4.4 3.0 7.8 6.8
Row #7: 8.4 3.1 4.9 2.0 6.8 9.2 6.6
Finding mins
Row #1, Min element: 0.9
Row #2, Min element: 0.6
Row #3, Min element: 1.2
Row #4, Min element: 1.0
Row #5, Min element: 2.0
Row #6, Min element: 2.5
Row #7, Min element: 2.0
Finding next mins