#include <stdio.h>
#include <float.h>
// назначение макросов
#define MAX 10
#define X_INIT (-DBL_MAX)
int main(void)
{
// рабочие переменные
int n;
int i;
int j;
double x;
double arr[MAX][MAX];
// проверка ввода порядка n
if( scanf("%d", &n ) <= 0 )
{
printf("error: incomplete input of n\n");
return 0;
}
if( n <= 1 || n > MAX )
{
printf("error: wrong value of n\n");
return 0;
}
// ввод матрицы с проверкой
for( i = 0; i < n; i++)
{
for( j = 0; j < n; j++)
{
if( scanf("%lf", &arr[i][j] ) < 1 )
{
printf("error: incomplete input of array\n");
return 0;
}
}
}
// печать введённой матрицы для отладки
printf("input array:\n");
for( i = 0; i < n; i++)
{
for( j = 0; j < n; j++)
{
printf("\t%2.2lf", arr[i][j]);
}
printf("\n");
}
// вывод результата, содержит номер строки, где необходимо было искать наибольший элемент
printf("result:\n");
for( i = 0; i < n; i++)
{
x = X_INIT;
if( arr[i][i] < 0 )
{
for( j = 0; j < n; j++)
{
if( arr[i][j] > x ) x = arr[i][j];
}
printf("line = %d, max = %2.2lf\n", i, x);
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxmbG9hdC5oPgogIAogICAvLyDQvdCw0LfQvdCw0YfQtdC90LjQtSDQvNCw0LrRgNC+0YHQvtCyCiNkZWZpbmUgTUFYIDEwCiNkZWZpbmUgWF9JTklUICgtREJMX01BWCkKCmludCBtYWluKHZvaWQpCnsKICAgLy8g0YDQsNCx0L7Rh9C40LUg0L/QtdGA0LXQvNC10L3QvdGL0LUKICAgaW50IG47CiAgIGludCBpOwogICBpbnQgajsKICAgZG91YmxlIHg7CiAgIGRvdWJsZSBhcnJbTUFYXVtNQVhdOwogICAKICAgLy8g0L/RgNC+0LLQtdGA0LrQsCDQstCy0L7QtNCwINC/0L7RgNGP0LTQutCwIG4KCWlmKCBzY2FuZigiJWQiLCAmbiApIDw9IDAgKQogICB7CiAgICAgIHByaW50ZigiZXJyb3I6IGluY29tcGxldGUgaW5wdXQgb2YgblxuIik7CiAgICAgIHJldHVybiAwOwogICB9CiAgIGlmKCBuIDw9IDEgfHwgbiA+IE1BWCApCiAgIHsKICAgICAgcHJpbnRmKCJlcnJvcjogd3JvbmcgdmFsdWUgb2YgblxuIik7CiAgICAgIHJldHVybiAwOwogICB9CiAgIAogICAvLyDQstCy0L7QtCDQvNCw0YLRgNC40YbRiyDRgSDQv9GA0L7QstC10YDQutC+0LkKCWZvciggaSA9IDA7IGkgPCBuOyBpKyspCgl7CgkJZm9yKCBqID0gMDsgaiA8IG47IGorKykKCSAgIHsKICAgICAgICAgaWYoIHNjYW5mKCIlbGYiLCAmYXJyW2ldW2pdICkgPCAxICkKICAgICAgICAgewogICAgICAgICAgICBwcmludGYoImVycm9yOiBpbmNvbXBsZXRlIGlucHV0IG9mIGFycmF5XG4iKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KCiAgICAgIH0gICAgICAKCX0KICAgLy8g0L/QtdGH0LDRgtGMINCy0LLQtdC00ZHQvdC90L7QuSDQvNCw0YLRgNC40YbRiyDQtNC70Y8g0L7RgtC70LDQtNC60LgKICAgcHJpbnRmKCJpbnB1dCBhcnJheTpcbiIpOwogICBmb3IoIGkgPSAwOyBpIDwgbjsgaSsrKQoJewogCQlmb3IoIGogPSAwOyBqIDwgbjsgaisrKQoJICAgewogICAgICAgICBwcmludGYoIlx0JTIuMmxmIiwgYXJyW2ldW2pdKTsgICAgICAgIAogICAgICAgICAKICAgICAgfSAKICAgICAgcHJpbnRmKCJcbiIpOyAgIAoJfQogICAvLyDQstGL0LLQvtC0INGA0LXQt9GD0LvRjNGC0LDRgtCwLCDRgdC+0LTQtdGA0LbQuNGCINC90L7QvNC10YAg0YHRgtGA0L7QutC4LCDQs9C00LUg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LHRi9C70L4g0LjRgdC60LDRgtGMINC90LDQuNCx0L7Qu9GM0YjQuNC5INGN0LvQtdC80LXQvdGCCiAgIHByaW50ZigicmVzdWx0OlxuIik7CiAgIGZvciggaSA9IDA7IGkgPCBuOyBpKyspCgl7CiAgICAgIHggPSBYX0lOSVQ7ICAgCiAgICAgIGlmKCBhcnJbaV1baV0gPCAwICkKICAgICAgewoJICAgICAgZm9yKCBqID0gMDsgaiA8IG47IGorKykKCSAgICAgIHsgICAKCQkgICAgICBpZiggYXJyW2ldW2pdID4geCApIHggPSBhcnJbaV1bal07ICAgICAgICAgICAgIAogICAgICAgICB9CiAgICAgICAgIHByaW50ZigibGluZSA9ICVkLCBtYXggPSAlMi4ybGZcbiIsIGksIHgpOyAKCSAgIH0gIAoJfQogICAKICAgcmV0dXJuIDA7Cn0=