Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Pascal ABC. Поиск индексов минимального и максимального значения и вывод элементов типа char из другого массива.

***fillskii@mail.ru Просветленный (29072), закрыт 6 лет назад
Уважаемые программисты и просто любители поясните, пожалуйста:
program pz165;
const
N=10;
var
a:array [1..N] of char;
b:array [1..N] of integer;
c:array [1..N] of integer;
d:array [1..N] of real;
dmin,dmax:real;
i,minind,maxind:integer;
begin
writeln('введите названия ',N,' стран');
for i:=1 to N do
begin
readln(a[i]);
end;
writeln('введите численность населения ' ,N,' стран');
for i:=1 to N do
begin
readln(b[i]);
end;
writeln('введите количество зарегистрированных в течении года пожаров в ',N,' странах');
for i:=1 to N do
begin
readln(c[i]);
end;
for i:=1 to N do
begin
d[i]:=c[i]/b[i];
end;
begin
dmax:=d[1];
maxind:=1;
for i:=1 to N do
if d[i]>dmax then
dmax:=d[i];
maxind:=i;
writeln('максимальный коэффициент риска возникновения пожара для страны ',maxind,' равен ',dmax);
end;
begin
dmin:=d[1];
minind:=1;
for i:=1 to N do
if d[i]<dmin then
dmin:=d[i];
minind:=i;
writeln('минимальный коэффициент риска возникновения пожара для страны ',minind,' равен ',dmin);
end;
end.
Вопрос такой: мне нужно из массива "d" взять коэффициенты максимального и минимального значения и вывести элементы из массива "а" с этими же индексами, но беда в том, что мне выводит всегда только десятые индексы. Помогите математику...
Дополнен 6 лет назад
writeln('максимальный коэффициент риска возникновения пожара для страны ',a[maxind],' равен ',dmax); - пробовалась и такая запись, но результат тот же: выдает последний 10 -ый элемент массива "a".
Дополнен 6 лет назад
Сами максимум и минимум он находит, но индексы - нет.
Лучший ответ
Imobilazer Искусственный Интеллект (222384) 6 лет назад
if d[i]>dmax then
dmax:=d[i];
maxind:=i;

не хватает begin - end, поэтому maxind увеличивается всегда и становится равен в итоге N
***fillskii@mail.ruПросветленный (29072) 6 лет назад
Спасибо за ответ
begin
dmax:=d[1];
maxind:=1;
for i:=1 to N do
if d[i]>dmax then
dmax:=d[i];
maxind:=i;
writeln('максимальный коэффициент риска возникновения пожара для страны ',maxind,' равен ',dmax);
end;
Он вроде бы уже заключен... Или ещё где-то нужно вставить?..
Imobilazer Искусственный Интеллект (222384) for i:=1 to N do if d[i]>dmax then begin dmax:=d[i]; maxind:=i; end;
Остальные ответы
Jurii Высший разум (175775) 6 лет назад
Char — это 1 символ!!!
А вы пытаетесь ввести туды названия стран…
Для этого нужно использовать тип String.
***fillskii@mail.ruПросветленный (29072) 6 лет назад
Пусть, так, но всё равно индекс максимального значения для массива d выводится неверно.
Jurii Высший разум (175775) А вот так? (см. сам ответ)
Resentful Punky Stream Знаток (405) 6 лет назад
Т. е мне Не занизили? Просто не понимаю, в интернете проверяла, посчитала и должна была выйти четверка.
Похожие вопросы