Запустил на этот код PVS-Studio. Он выявил 2 ошибки:
s1 += (1/k+k);
V636 The '1 / k' expression was implicitly cast from 'int' type to 'float' type. Consider utilizing an explicit type cast to avoid the loss of a fractional part. An example: double A = (double)(X) / Y;. consoleapplication2017.cpp 34
Здесь целочисленное деление. Т.к. k это минимим 1, то при делении всегда будет получаться на первом проходе 1, а потом всё время 0. Исправление:
s1 += (1.0f/k+k);
Хотя мне кажется здесь ещё и скобки неверно поставлены и должно быть:
s1 += 1.0f/(k+k);
Вторая ошибка:
for (int i=1; i<n; i++)
{
for (int k=1; k<m; i++)
V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'i'. consoleapplication2017.cpp 33
Опечатка. Во втором цикле увеличивается i, а надо k.
Используйте PVS-Studio. :)