usiłuję napisać program, który wczyta do dwuwymiarowej tablicy dynamicznej podane przez użytkownika liczby, a następnie policzy średnią każdej z kolumn, wyświetli je, i powie która jest największa:)
Napisałem taki oto kod:
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
int main()
{
int **t=NULL, n, m, i, e, sum=0, sr=0, a=0, b, k=0, f;
//**t=NULL dynamiczna tablica dwuwymiarowa, o domyslnej wartosci NULL
//n,m - ilosc wierszy, komórek
//sum - suma calkowita
//sr - srednia calkowita
//a - srednia kolumny
//b = n*m
//i,e - liczniki
//k - najwieksza srednia
//f - numer kolumny najwiekszej sredniej
printf("podaj ilosc wierszy: ");
scanf("%d",&n); // podanie rozmiarów tablicy prze uzytkownika
printf("
");
printf("podaj ilosc kolumn: ");
scanf("%d",&m);
printf("
");
//tworzenie pierwszego wymiaru
t=(int**)malloc(n*sizeof(int*));
//tworzenie drugiego wymiaru
for(i=0; i<n; i++)
{
t[i]=(int*)malloc(m*sizeof(int));
}
//podawanie wartoœci
for(i=0; i<n; i++)
{
for (e=0; e<m; e++)
{
printf("PODAJ WARTOSC DLA KOMORKI [%d] [%d]: ", i, e);
scanf("%d",&t[i][e]);
}
}
//wypisywanie
for(i=0; i<n; i++)
{
printf("
");
for (e=0; e<m; e++)
{
printf("%d ", t[i][e]);
}
}
//suma wszystkiego
for(i=0; i<n; i++)
{
for(e=0; e<m; e++)
{
sum += t[i][e];
}
}
printf("
SUMA CALKOWITA: %d", sum);
//srednia arytmetyczna wszystkiego
b=n*m;
sr=sum/b;
printf("
SREDNIA WSZYSTKIEGO: %d
",sr);
//srednia dla pojedynczej kolumny
return 0;
}
Kod: Zaznacz cały
//srednia arytmetyczna kazdego wiersza
for (i=0; i<n; i++)
{
for (e=0; e<m; e++)
{
a += t[i][e];
}
a = a/m;
if(a>k)
{
k=a;
f=i+1;
}
printf ("Srednia wiersza %d to: %d
", i+1,a);
a = 0;
}
printf("Najwieksza srednia to: %d.
Numer wiersza tej sredniej to: %d", k,f);
Z góry dziękuję za poświęcony czas.
Pozdrawiam, darnok662.
@edit
Moj problem polega na tym, ze licznik po komórkach, porusza się poziomo, jak na obrazku:
Uploaded with
Więc łatwo jest w pętli sumować kolejne komórki każdego wiersza, następnie dzielić je na ilość komórek wiersza a na koniec wiersza wyświetlać wynik:) Tylko jak to teraz zrobić w pionie...Czekam na podpowiedzi jak to zrobić dla kolumn...