tablice dwuwymiarowe

markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice dwuwymiarowe

Post autor: markez444 »

Witam i prosze o pomoc w rozwiazaniu takiego oto zadanka: napisac funkcje znajdujaca indeksy(numer wiersza i kolumny) najmniejszego elementu parzystego w macierzy o rozmiarach n x m wynik: funkcja powinna przekazac w parametrach(tablica statyczna). Narazie sam probuje to zrobic ale jakies cuda sie pojawiaja takze jezeli ktos ma jakas koncepcje na to to prosilbym o podpowiedz.
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

tablice dwuwymiarowe

Post autor: matshadow »

markez444 pisze:wynik: funkcja powinna przekazac w parametrach(tablica statyczna).
Wynik ma być przekazany w parametrach? Bo ten dwukropek nie wiem czy przez przypadek postawiony czy specjalnie. I jaki język?
markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice dwuwymiarowe

Post autor: markez444 »

ten dwukropek to jest tylko po to aby oddzielic to co ma byc pokazane w wyniku czyli "FUNKCJA MA PRZEKAZAC W PARAMETRACH" to powinno byc wynikiem tego zadanka.
nie wiem czy dobrze to rozumiem ale to chodzi o to jak program znajdzie ten najmniejszy element w tablicy(parzysty) i poda wowczas numer wiersza i kolumny jego. mam juz troche kodu ale troche go tu jeszcze brakuje:
void mini(int *wiersz, int * kolumna)
{

}
int min = 100;
for(i = 0; i <3; i++)
for(j = 0; j<4; j++)
if(tab[j]%2==0 && min = tab[j]<min)
min = tab[j];
*wiersz = i; *kolumna = j;


chodzi o jezyk programowania C-- 3 gru 2009, o 11:32 --Mam tutaj taki kod ale jeszcze ciagle nie dziala bo nie zmienia mi sie najmniejszy element parzysty oraz numer wiersza i kolumny tego elementu:

#include <stdio.h>
#include <stdlib.h>

void minimum(int * wiersz, int * kolumna)
{
int i,j;
*wiersz = i;
*kolumna = j;
}
int main()
{
int i,j,tab[3][4],min = 100;
srand(time(0));
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
tab[j] = rand()%100;
}
}
printf("Elementy tablicy:
");
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
printf("%d ",tab[j]);
printf("
");
}

for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
if((tab[j]%2==0) && (min = tab[j]<min))
min = tab[j];

}
printf("Najmniejszy element parzysty tablicy to: %d, numer wiersza %d, numer kolumny %d
",min,i,j);


return 0;
}
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

tablice dwuwymiarowe

Post autor: soku11 »

Twojego kodu się nie da czytać. Oto prosta funkcja, która znajduje minimum i wpisuje znalezione wartości.

Kod: Zaznacz cały

typedef struct Tab2D
{
  int** tab;
  int width;
  int height;
} Tab2D;

void minimum(Tab2D* tab,int* minX,int* minY)
{
  int x=0;
  int y=0;
  int min=tab->tab[0][0];
  *minX=*minY=0;

  for(x=0;x<tab->width;++x)
    for(y=0;y<tab->height;++y)
      if(tab->tab[x][y]<min)
      {
        min=tab->tab[x][y];
        *minX=x;
        *minY=y;
      }
}
Trzeba go jedynie zmodyfikować, by uwzględniał parzystość.


Pozdrawiam.
ODPOWIEDZ