Перевод из Pascal в C#
var
n, m, i, j, k, l, min, d, max: integer;
x, y: array [1..10] of integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(n,m); read(k);
for l:=1 to k do read(x[l],y[l]);
max:=0;
for i:=1 to n do for j:=1 to m do begin
min:=n+m;
for l:=1 to k do begin
d:= abs(i-x[l])+abs(j-y[l]);
if d<min then min:=d
end;
if min>max then max:=min
end;
write(max);
close(output)
end.
Ответы (2 шт):
Автор решения: aepot
→ Ссылка
У языков важные отличия.
- Вы не сможете нативно читать с консоли через пробел, как это может паскаль. Поэтому после ввода каждой группы чисел нужно нажимать Enter.
- Нумерация массивов начинается с 0, а не с 1.
Console.Write("Введите n m k: ");
string[] s = Console.ReadLine().Split(' ');
int n = Convert.ToInt32(s[0]);
int m = Convert.ToInt32(s[1]);
int k = Convert.ToInt32(s[2]);
int[]
x = new int[k],
y = new int[k];
for (int i = 0; i < k; i++)
{
Console.Write("Введите x[{0}] y[{0}]: ", i);
s = Console.ReadLine().Split(' ');
x[i] = Convert.ToInt32(s[0]);
y[i] = Convert.ToInt32(s[1]);
}
int max = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
int min = n + m;
for (int l = 0; l < k; l++)
{
int d = Math.Abs(i - x[l]) + Math.Abs(j - y[l]);
if (d < min) min = d;
}
if (min > max) max = min;
}
Console.WriteLine("Результат max: {0}", max);
Console.ReadKey();
Автор решения: user545575
→ Ссылка
var a:integer; begin writeln ('Сколько вам лет?'); read (a); if (a>=18) then writeln ('Замечательно. Вы уже можете водить автомобиль') else writeln ('К сожалению, водить автомобиль Вам рановато'); end.