An algebraically exact solution to the problem of linear water-wave scattering by a periodic array of scatterers is presented in which the scatterers may be of arbitrary shape. The method of solution is based on an interaction theory in which the incident wave on each body from all the other bodies in the array is expressed in the respective local cylindrical eigenfunction expansion. We show how to efficiently calculate the slowly convergent terms which arise in the formulation and how to calculate the scattered field far from the array. The application to the problem of linear acoustic scattering by cylinders with arbitrary cross-section is also discussed. Numerical calculations are presented to show that our results agree with previous calculations. We present some computations for the case of fixed, rigid and elastic floating bodies of negligible draft concentrating on presenting the amplitudes of the scattered waves as functions of the incident angle.