values from an array aren't passing onto a function

i'm having problems with my S() function. it takes values from the array segment[] but it doesn't want to take values from theta[].

int theta[3]; int Stheta[5]; int segment[3];

int j;

void setup() {

int h=2; int m=15; int s=0;

Serial.begin(9600);

theta[0] = 30*h; theta[1] = 6*m; theta[2] = 6*s; Serial.println(theta[0]); Serial.println(theta[1]); Serial.println(theta[2]);

segment[0] = fsegment(theta, j=0); segment[1] = fsegment(theta, j=1); segment[2] = fsegment(theta, j=2);

Serial.println(segment[0]); Serial.println(segment[1]); Serial.println(segment[2]);

S(theta, segment, Stheta);

Serial.println(Stheta[0]); Serial.println(Stheta[1]); Serial.println(Stheta[2]);

}

void loop() { }

int fsegment(int theta[], int j) { int s=0; do{ theta[j]=theta[j]/75; s++; }while(theta[j]>0);

return s-1; }

void S(int theta[], int segment[], int Stheta[]) { Stheta[0] = theta[0]; Stheta[1] = theta[1]; Stheta[2] = theta[2]; }

inside setup i printed various values to console to see where things were going wrong. and inside function S() i set Stheta[j] = theta[j] ; so then in the console, the Stheta[] values should be the same as the theta[] values. but they're not. i have no idea why.

console:

60
90
0
0
1
0
0
0
0

arduino IDE v1.0.6

S is working fine - you're missing the fact that fsegment() side-effects its argument array. Arrays are passed by reference, not by value (ie they are not copied).

To see what's going on, add this code fragment:

Serial.println("The new thetas");
     Serial.println(theta[0]);
     Serial.println(theta[1]);
     Serial.println(theta[2]);

just before you call S().

fixed it; thanks a bunch

int fsegment(int theta[], int j)                
{
  int b[3];
  int s=0;
  b[j] = theta[j];
  do{
    b[j]=b[j]/75;
    s++;
  }while(b[j]>0);
  
  return s-1;
}