10 / 10 / 1
Регистрация: 20.04.2012
Сообщений: 288
1

Сделать чтобы цифры не повторялись и элемент массива не был равен его номеру по порядку

17.10.2016, 20:55. Показов 616. Ответов 5
Метки нет (Все метки)

Привет, народ. Нужно что бы цифры не повторялись и элемент массива не был равен его номеру по порядку.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  while i < n  do
    begin
      i := i + 1;
      mas[i]:=Random(n);
      if mas[1] = 0 then
        mas[1]:=Random(n+1);
      for k := 1 to i - 1 do
        if mas[k] = mas[i] then
          begin
            i := i - 1;
            break;
          end;
    end;
  for i:=0 to n-1 do
    begin
        if mas[i]=i then
          begin
            buff:=mas[i-1];
            mas[i-1]:=mas[i];
            mas[i]:=buff;
          end;
    end;
я вот вроде написал, в дебаге работает норм, меняет, но если несколько раз прогонять прогу то появляются элементы которые равны своему номеру, где у меня косяк??
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2016, 20:55
Ответы с готовыми решениями:

Заполнить матрицу так, чтобы элемент в нечетной строке был равен номеру столбца, а в четном — номеру строки
Помогите пожалуйста решить задачу. Заполнить целочисленную квадратную матрицу 10х10 так, чтобы...

Заполните массив степенями числа 2, так, чтобы последний элемент массива был равен 1
заполните массив степенями числа 2,так что-бы последний элемент массива был равен 1,а каждый...

Надо, чтобы у меня элемент массива (или переменная) был равен двойной кавычке.
Мне надо, чтобы у меня элемент массива (или переменная) был равен двойной кавычке. Делаю так...

Заполнить массив N случайными числами, так чтобы каждый элемент в массиве был равен сумме элементов его соседей слева
Массивы должны быть рандомные

5
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
17.10.2016, 21:13 2
Цитата Сообщение от cargerdree Посмотреть сообщение
Нужно что бы цифры не повторялись
Помню когда-то делала в универе как-то так:
Delphi
1
2
3
4
5
for i:=Low(mas) to High(mas) do begin
 if i=Low(mas) then mas[i]:=random(n) else 
 if random(1)=0 then mas[i]:=mas[i-1]+random(n) else
  mas[i]:=mas[i-1]-random(n);
end;
Вроде повторы исключались.
0
10 / 10 / 1
Регистрация: 20.04.2012
Сообщений: 288
17.10.2016, 21:20  [ТС] 3
Hikari, с повтором проблем нет, всплывает проблема с тем что порой случается что элемент массива равен его номеру, а такое нельзя..
0
97 / 97 / 25
Регистрация: 25.04.2016
Сообщений: 525
18.10.2016, 16:38 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program Project1;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
 
var
  ms: array[0..1000] of Integer;
  i: Integer;
 
begin
  try
    for I := Low(ms) to High(ms) do
      ms[i]:=i*10+Random(5)+5;
 
    { TODO -oUser -cConsole Main : Insert code here }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  ReadLn;
end.
1
D1973
18.10.2016, 18:31
  #5

Не по теме:

Цитата Сообщение от Hikari Посмотреть сообщение
Помню когда-то делала в универе как-то так:
Hikari, на коленке, да? ;)

0
Hikari
18.10.2016, 18:59     Сделать чтобы цифры не повторялись и элемент массива не был равен его номеру по порядку
  #6

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
Hikari, на коленке, да?
Да, потому что не все помню из жизни студента.
Много на самом деле приходится вспоминать, в том числе и по работе.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2016, 18:59

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Изменение программы чтобы в массиве В, элемент с номером i был равен минимальному среди первых i элементов массива А
Здравствуйте! помогите пожалуйста решить задачу: Измените программу, приведенную ниже, так, чтобы...

Исправить программу так, чтобы в массиве В, элемент с номером i был равен количеству нулей среди первых i элементов массива А
Измените предыдущую программу так, чтобы в массиве В, элемент с номером i был равен количеству...

Судоку: Сделать так, чтобы цифры не повторялись
Пишу игру судоку. Не могу сделать так, чтобы цифры не повторялись. Вот код заполнения поля: ...

[КуМир]Заполните массив целыми числами, так чтобы средний элемент массива был равен X, слева от него элементы стоят по в
Заполните массив целыми числами, так чтобы средний элемент массива был равен X, слева от него...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.