#include <stdio.h>
#include <stdlib.h>
int column_statistics(const int *ptr, int width, int height, int column_id,
int* max, int* min, float *avg);
int row_statistics(const int *ptr, int width, int height, int row_id, int* max,
int* min, float *avg);
int main()
{
int i = 0, j = 0;
int tab[5][5];
const int *ptr = &tab[0][0];
int width = 5;
int height = 5;
int column_id;
int max=0, *pmax = &max;
int min=0, *pmin = &min;
float avg, *pavg = &avg;
//float *ptab = &tab[0][0];
for (i=0; i<5; i++){
for (j=0;j<5;j++)
{
//scanf("%d", &*(*(tab+i)+j)); //wprowadzanie przez uzytkownika
*(*(tab+i)+j)=5; // tymczasowo bo mi sie nie chce pisac
}}
for (i=0; i<5; i++)
{
for (j=0;j<5;j++)
{
printf("%d | ", *(*(tab+i)+j));
}
printf("\n");
}
for (i=0; i<5; i++)
{
column_statistics(&tab[0][0],5,5,i,&max,&min,&avg);
printf("\n");
}
for (i=0; i<5; i++)
{
row_statistics(&tab[0][0],5,5,i,&max,&min,&avg);
printf("\n");
}
return 0;
}
int column_statistics(const int *ptr, int width, int height, int column_id,
int* max, int* min, float *avg)
{
*max = *(ptr+column_id*1+0);
//*avg = *max;
for (int i=1; i<height; i++)
{
if (*(ptr+column_id)+i>*max)
{
*max = *(ptr+column_id)+i;
*avg += *(ptr+column_id)+i;
}
*avg = *avg / i;
}
*min = *(ptr+column_id*1+0);
for (int i=1; i<height; i++)
{
if (*(ptr+column_id)+i<*min)
{
*min = *(ptr+column_id)+i;
}
}
printf("Kolumna:: Max: %d Min: %d Avg: %.2f ", *max,*min,*avg);
return 0;
}
int row_statistics(const int *ptr, int width, int height, int row_id, int* max,
int* min, float *avg)
{
*max = *(ptr+0*1+row_id);
*avg = *max;
for (int i=1; i<width; i++)
{
if (*(ptr+i*1+row_id)>*max)
{
*max = *(ptr+i*1+row_id);
*avg += *(ptr+i*1+row_id);
}
*avg = *avg / i;
}
*min = *(ptr+0*1+row_id);
for (int i=1; i<width; i++)
{
if (*(ptr+i*1+row_id)<*min)
{
*min = *(ptr+i*1+row_id);
}
}
printf("Wiersz:: Max: %d Min: %d Avg: %.2f ", *max,*min,*avg);
return 0;
return 0;
}
Chodzi o statystyki macierzy, nie wiem gdzie popełniłem błąd. :C
Funkcje nie liczą poprawnie zadanych wartości a mianowicie maximum minimum i sredniej
zaczynam dopiero i nie mogę sobie poradzić z tym :/