Форумы-->Форум для внеигровых тем-->
Автор | знатокам Pascala |
Что не так в этой программе?
program pr1;
uses crt;
var n,x,y,i,sum:integer; a:array[1..100] of integer;
begin
read(n);
for i:= 1 to n do
for x:=1 to i do
for y:=1 to n-i+1 do
a[x,y]:=+a[x,y]+1;
sum:=0;
for x:=1 to n do
for y:=1 to n do
sum:=sum+a[x,y]
writeln(sum);
end.
Запускаю-пишет массив имеет другое количество размерностей. Как исправить? | Что не так в этой программе
Ничего не понятно.
:) | Напиши на С++ =) | на с++ могу только фрагмент записать, а ты мне поможешь с ответом, ок? | Мне пофиг, я флудераст. | a[x,y]:=+a[x,y]+1;
На этой строчке ошибку показывает? | у тебя задан одномерный массив а a[x,y]:=+a[x,y]+1;а это вызов двумерного | Наверное, проблема в том, что массив имеет другое количество размерностей
объявлен одномерный массив:
a:array[1..100] of integer;
а вот здесь:
a[x,y]:=+a[x,y]+1;
обращаются к двумерному массиву
Как исправить: ну например, объявить двумерный массив вот так:
а:array[1..100, 1..100] of integer;
А вообще программы выглядит крайне фиговов и никак не защищается от ошибок. Вот введут в начале n=200 - сразу ошибку получишь. | он же сам тебе пише, что размерность массива задана неверно :) | Скорее всего тебе просто надо добавить
var n,x,y,i,sum:integer; a:array[1..100,1..100] of integer;у | все, всем спасибо, разобрался) | тема закрыта by ShnapsKoRn (2009-11-25 15:53:40) |
---|
К списку тем
|