Array-wise operations

Bob Cowdery bob at bobcowdery.plus.com
Tue Oct 12 13:44:48 PDT 2010


 On 12/10/2010 21:25, Bob Cowdery wrote:
>  On 12/10/2010 21:11, Simen kjaeraas wrote:
>> Bob Cowdery <bob at bobcowdery.plus.com> wrote:
>>
>>>  On 12/10/2010 20:29, Simen kjaeraas wrote:
>>>> Bob Cowdery <bob at bobcowdery.plus.com> wrote:
>>>>
>>>>> x_points[]
>>>>> =(x_average[0]+x_average[1]+x_average[2]+x_average[3]+x_average[4]+x_average[5]+
>>>>>
>>>>>
>>>>> x_average[6]+x_average[7]+x_average[8]+x_average[9])/10;
>>>>>
>>>>> The average gives me a compile error of incompatible types.
>>>> You need to append [] to x_average[index].
>>>>
>>>>
>>> Thanks. I tried it the other way round [][0]. To put [0][] seems to me
>>> the wrong way round. Probably just not understanding the syntax
>>> properly.
>> Yeah, it's a bit the wrong way around, for those coming from C, at least.
>> The idea is that for any T[] t, t[0] should behave as if a function
>> returning a T. So, for char[][] c, c[0] returns char[], which would then
>> be indexed by the next brackets. If index was the function:
>>
>> c[0][1] => index( index( c, 0 ), 1 );
>>
>>
> Ok, kind of understand that. Now I have another problem.
>
> x_average[ptr] = x_points; // tells me array length don't match.
>
> When I print x_average[ptr] or x_average[][ptr] or x_average[ptr][] they
> all tell me the length is 10. What do I have to do to get to the row
> which is 600?
>
Got it now. The array was defined back to front as well. Should have been

x_average[10][600] (I think, seems to work anyway).



More information about the Digitalmars-d-learn mailing list