Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2015, 22:38   #1
metanol
 
Регистрация: 11.05.2015
Сообщений: 6
По умолчанию помгите исправить код

Нужно создать новый массив из номеров нулевых элементов исходного массива
Код:
program Project27;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var A,B:array [1..30] of integer;
    n,i,k:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
  writeln('vvedite chislo elementov massiva:');
  readln(n);
  writeln('vvedite massiv:');
  begin
    for i := 1 to n do
      read(A[i]);
      readln;
  end;
  k:=0;
  for i := 1 to n do
   if A[i]=0 then
   begin
   k:=k+1;
   B[k]:=i;
  end;
    writeln('massiv iz novyx elementov:');
    for i := 1 to k do
   writeln(B[k]:4);
   readln;
end.
выдает пятерки постоянно
metanol вне форума Ответить с цитированием
Старый 11.05.2015, 22:59   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

1. Используйте для ввода данных процедуру readln();
2. Тут у Вас цикл с параметром i, а Вы выводите каждый раз одно и то же значение B[k]. При этом k = числу найденных элементов, т.е. выводится k раз номер последнего найденного элемента.
Код:
for i := 1 to k do
   writeln(B[k]:4);

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 11.05.2015, 23:18   #3
metanol
 
Регистрация: 11.05.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
1. Используйте для ввода данных процедуру readln();
2. Тут у Вас цикл с параметром i, а Вы выводите каждый раз одно и то же значение B[k]. При этом k = числу найденных элементов, т.е. выводится k раз номер последнего найденного элемента.
Код:
for i := 1 to k do
   writeln(B[k]:4);

Как-то так, ...
Исправил на B[i],вроде получилось,но почему так?
metanol вне форума Ответить с цитированием
Старый 12.05.2015, 22:35   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Цитата:
Исправил на B[i],вроде получилось,но почему так?
Да просто потому ...
B[] - это массив (некоторый набор) однотипных элементов.
Вам надо вывести числа, которые хранятся в этих элементах.
В цикле, меняя i - номер элемента, Вы и получаете требуемое - B[i].
k - число найденных совпадений и это число заполненных элементов массива B[] или, что тоже самое - последний заполненный элемент в массиве B[].


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить код UKRtortik Общие вопросы Delphi 1 02.04.2014 20:58
исправить код kostan3 Общие вопросы C/C++ 10 16.03.2014 17:45
Исправить код саша40 Мультимедиа в Delphi 7 06.11.2012 22:01
Исправить код DirtyBASS Помощь студентам 2 22.09.2009 10:20
Исправить код IndividBezLica Помощь студентам 0 02.06.2009 09:41