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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 16:05   #1
fearfrost
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
Вопрос числа

в программу вводиться кол-во чисел, потом сами числа, надо из них составить максимально большое число
программу почти решил, но столкнулся с проблемой, что в максимальном числе приоретеней будет сначало ставить 3, потом 29...
fearfrost вне форума Ответить с цитированием
Старый 10.10.2012, 16:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кто-нибудь что-нибудь понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.10.2012, 16:12   #3
fearfrost
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

даётся массив, из N чисел, потом вводят эти числа, надо из этих чисел максимально большое число составить
пример
вводится:
4(n)
28
3
40
50
выводит:
5040328

Последний раз редактировалось fearfrost; 10.10.2012 в 16:14.
fearfrost вне форума Ответить с цитированием
Старый 10.10.2012, 16:58   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
procedure Swap (var a, b : string);

var
	t : string;

begin
	t := a;
	a := b;
	b := t;
end;

var
        n, j, i : Integer;
        a : array [1..10] of string;

begin
        ReadLn (n);

        for i := 1 to n do
                ReadLn (a[i]);

        for i := 1 to n-1 do
		for j := 1 to n-i do
			if a[j] + 'A' < a[j+1] + 'B' then
				Swap (a[j], a[j+1]);

        for i := 1 to n do
                Write (a[i])
end.
Не проверял
Poma][a вне форума Ответить с цитированием
Старый 10.10.2012, 17:22   #5
fearfrost
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

программа малька неправильна была составлена, но навела на одну мысль

Последний раз редактировалось fearfrost; 10.10.2012 в 17:31.
fearfrost вне форума Ответить с цитированием
Старый 10.10.2012, 19:52   #6
fearfrost
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

в общем моя мысль провалилась, осталась таже ошибка "3 менее преоритетно чем 29, в плане сравнения"
fearfrost вне форума Ответить с цитированием
Старый 10.10.2012, 20:03   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const MaxN=10;
var A:array[1..MaxN] of integer;
buf1,buf2:string;
i,j,n,q:integer;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
begin
str(a[i],buf1);str(a[j],buf2);
if buf1>buf2 then
begin
q:=a[i];
a[i]:=a[j];
a[j]:=q;
end;
end;
buf1:='';
for i:=1 to n do
begin
str(a[i],buf2);
buf1:=buf2+buf1;
end;
val(buf1,i,j);
writeln(i);
end.
Цитата:
4
28
3
40
50
5040328
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 10.10.2012 в 20:08.
Mad_Cat вне форума Ответить с цитированием
Старый 10.10.2012, 20:05   #8
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Просто переведи числа в строки (процедура str) и сравнивай. Там и будет '3'>'28'
eoln вне форума Ответить с цитированием
Старый 10.10.2012, 21:22   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Мой алгоритм кажется проходит все тесты. Если я ошибаюсь, то будьте добры привидете контр. пример
Poma][a вне форума Ответить с цитированием
Старый 10.10.2012, 21:49   #10
fearfrost
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Poma
[a]Мой алгоритм кажется проходит все тесты. Если я ошибаюсь, то будьте добры привидете контр. пример
Код:
4
34
3
32
33
3433323
за str благодорю

Последний раз редактировалось fearfrost; 10.10.2012 в 21:56.
fearfrost вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи в ТурбоПаскаль: найти числа Армстронга и просуммировать числа в последовательности номера которых простые числа Lena1808 Помощь студентам 1 17.05.2012 08:00
Задані цілі числа від 1 до 100.Надрукувати в порядку зростання усі числа що можна подати у вигляді 7*i*j+j+3, де i,j - цілі числа. Саша513 Паскаль, Turbo Pascal, PascalABC.NET 0 16.05.2012 18:45
Даны натуральные числа n и m. Получить сумму m последних цифр числа n pahanzona Microsoft Office Excel 11 27.02.2011 02:17
Вычислить:у=а*(в*в*в)*с,где а,в,с-двоичные числа.Для хранения числа использ.массив! Таняпервокурсница Помощь студентам 4 04.06.2010 12:08
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49