Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/47: Рейтинг темы: голосов - 47, средняя оценка - 4.70
18 / 17 / 11
Регистрация: 19.10.2009
Сообщений: 43
1

Найти максимальное число в строке

18.06.2010, 19:29. Показов 9344. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно найти максимальное число в строке
например: если ввести 33dadawd23 9 , то программа должна выдавать 33

На этом форуме я отыскал решение этой задачи

Pascal
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
26
27
28
29
30
uses crt;
const cf=['0'..'9'];
var s,s1,max:string;
    i,j,k:byte;
    c:char;
begin
clrscr;
writeln('Введите строку, содержащую числа:');
readln(s);
writeln('Числа в строке:');
i:=1;max:='0';k:=0;
while i<=length(s) do
if (s[i] in cf)and (not(s[i-1]in cf)or(i=1)) then{если цифра, а перед ней не цифра, или она первая}
 begin
  k:=i;s1:='';
  while (s[k] in cf)and(k<=length(s))do {пока цифры и не конец строки}
   begin
    s1:=s1+s[k];
    k:=k+1;{идем вперед}
   end;
  write(s1,' ');
  if s1>max then max:=s1;{максимальное число}
  i:=i+length(s1);{перепрыгиваем}
 end
else i:=i+1;{иначе идем вперед}
writeln;
if k=0 then write('В строке нет чисел')
else write('Максимальное число=',max);
readln
end.
но эта программа неправильно работает, она ищет максимальную цифру в строке
например, если ввести: 24 4, то она выдаст 4
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2010, 19:29
Ответы с готовыми решениями:

Найти максимальное число в 3 строке матрицы
Задана матрица М(4,5) найти максимальное число в 3 строке?

Задана матрица М(4,5).Найти максимальное число в третьей строке
Помогите решить!

В строке символов определить максимальное число пробелов, стоящих подряд
В строке символов определить максимальное число пробелов, стоящих подряд. Удалить все пробелы,...

Найти число, в двоичной записи которого максимальное число
Среди простых чисел, не превосходящих n, найти такое, в двоичной записи которого максимальное число...

5
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
18.06.2010, 20:13 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Это я лажанулся, переклинило, решил почему-то строки числа также сравниваются как и числа.
Нужно так.
Pascal
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
26
27
28
29
30
31
32
33
uses crt;
const cf=['0'..'9'];
var s,s1:string;
    i,j,k:byte;
    max,t:longint;
    x:integer;
    c:char;
begin
clrscr;
writeln('Введите строку, содержащую числа:');
readln(s);
writeln('Числа в строке:');
i:=1;max:=0;k:=0;
while i<=length(s) do
if (s[i] in cf)and (not(s[i-1]in cf)or(i=1)) then{если цифра, а перед ней не цифра, или она первая}
 begin
  k:=i;s1:='';
  while (s[k] in cf)and(k<=length(s))do {пока цифры и не конец строки}
   begin
    s1:=s1+s[k];
    k:=k+1;{идем вперед}
   end;
  write(s1,' ');
  val(s1,t,x);
  if t>max then max:=t;{максимальное число}
  i:=i+length(s1);{перепрыгиваем}
 end
else i:=i+1;{иначе идем вперед}
writeln;
if k=0 then write('В строке нет чисел')
else write('Максимальное число=',max);
readln
end.
2
18 / 17 / 11
Регистрация: 19.10.2009
Сообщений: 43
18.06.2010, 20:30  [ТС] 3
Спасибо огромное, а то я 2 дня пытался найти ошибку
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
19.06.2010, 00:54 4
Puporev, строки числа сравниваются так же, как и числа, потому как сравниваются коды каждой цифры по алфавиту. Стало быть дело не в том.
я эту задачу решал проще.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.11.2010, 22:24 5
Цитата Сообщение от кот Бегемот Посмотреть сообщение
строки числа сравниваются так же, как и числа,
Леший занес в эту тему, поэтому возражу.
Число 6 меньше числа 16, а строка '6'>'16' при сортировке.
Проверь
Pascal
1
2
3
4
uses crt;
begin
write('6'>'16');
end.
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
29.11.2010, 23:57 6
ну да, я подразумевал одинаковую длину чисел. а при разной совсем просто - чья длина больше, то и больше.
0
29.11.2010, 23:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2010, 23:57
Помогаю со студенческими работами здесь

Матрица. Определить максимальное положительное число в K той строке рандомной матрицы
Здраствуйте. нужно определить максимальное положительное число в K той строке рандомной матрици....

Найти минимальное и максимальное слово в строке
Есть код программы, которая ищет минимальное слово в строке, что нужно добавить в этот код, что бы...

Найти максимальное число в строке
Program kl; var s: string; c: char; i: byte; begin write('s='); readln(s); i:=1;...

Максимальное число в строке
Дана строка состоящая из букв,цыфр,символов.Найти максимальное число.(число-однозначное,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru