Mam takie zadanie do wykonania:
Napisz funkcję, która w prostokątnej tablicy liczb prostokątnych zlokalizuje wartość o sumie bitów podzielnej przez 3. Współrzędne pierwszej znalezionej liczby spełniającej to kryterium są przekazywane (udostępniane) na zewnątrz funkcji.
Napisałem kod:
#include <iostream>
using namespace std;
void Zadanie1(int & wspolrzedna1,int & wspolrzedna2,short int tab[][3],int rozmiar1,int rozmiar2)
{
int suma=0;
for(int i=0;i<rozmiar1;i++)
{
for(int j=0;j<rozmiar2;j++)
{
for(int k=1;k<=16;k++)
{
suma=suma+tab[i][j]&1;
tab[i][j]=tab[i][j]>>1;
}
if(suma%3==0)
{
wspolrzedna1=i;
wspolrzedna2=j;
return;
}
}
}
}
int main()
{
int wspolrzedna1=0;
int wspolrzedna2=0;
const int rozmiar1=2;
const int rozmiar2=3;
short int tab[rozmiar1][rozmiar2]=
{
{1,3, 5},
{5,2,11}
};
Zadanie1(wspolrzedna1,wspolrzedna2,tab,rozmiar1,rozmiar2);
cout << wspolrzedna1 << " " << wspolrzedna2 << endl;
return 0;
}
Niestety program nie działa. Pokazuje że tą liczbą której liczba bitów jest podzielna przez 3 jest 2 co jest nieprawdą. Jak ktoś zlokalizuje błąd i mi pomoże będę bardzo wdzięczny.