Автор Тема: Программа на Delphi, выдает неверный ответ  (Прочитано 2370 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lenar

  • Старожил
  • ****
  • Сообщений: 258
    • Просмотр профиля
program Project2;

{$APPTYPE CONSOLE}
uses
  SysUtils;
var x, y, z, kol, sum:integer;
begin
y:= 0;
z:= 999999999;
kol:=0;
sum:=0;
Writeln ('vedite chisla');
Writeln ('dlya okonchaniya vvoda nabrat 999999');
Readln (x);                                             ;
While x<> 999999 do
begin
if x > y then y:= x;
if x < z then z:= x;
sum:=sum+x;
Readln (x);
kol:=kol+1;
end;
if x= 999999 then
Writeln('max  ',y);
Writeln('min  ',z);
Writeln('kol  ',kol);
Writeln('sum  ',sum);
Writeln('sred  ',sum/kol);
readln;
end.

у меня все переменные через integer но почему то в результате выдает НЕ целое число
« Последнее редактирование: 19 Января 2012, 16:27:21 от Asix »

Оффлайн Hellko

  • Старожил
  • ****
  • Сообщений: 363
    • Просмотр профиля
Re: Delphi
« Ответ #1 : 20 Декабря 2011, 20:59:01 »
неявное преобразование типа: sum/kol
чтобы результат был целый sum div kol

Оффлайн wital1984

  • Постоялец
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: Delphi
« Ответ #2 : 20 Декабря 2011, 21:24:04 »
согласен с предыдущим мнением.
но если уж строго смотреть, то:
1) не совсем правильные начальные значения z. Лучше выбрать верхнюю границу типа integer, а проще z:=999999 (x, который нужно набрать для окончания ввода)
2) а зачем эта строка if x= 999999 then ?