Двумерные массивы:сумма цифр чисел..., думала,писала,но совсем запуталась :( |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Двумерные массивы:сумма цифр чисел..., думала,писала,но совсем запуталась :( |
Jane |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: 0 |
Помогите,появуста,решить задачу-не могу сдать зачёт!!!
:molitva: "Дана последовательность не более 30 ненулевых целых чисел, последним числом в последовательности является 0. Вве- дите последовательность в одномерный массив и напечатайте в порядке возрастания элементы, сумма цифр в которых находится в интервале от А до В. Использование дополнительных массивов запрещено." Jane@tlt.ru Сообщение отредактировано: Jane - Прикрепленные файлы LAB2_1.PAS ( 755 байт ) Кол-во скачиваний: 258 |
volvo |
Сообщение
#2
|
Гость |
Jane
А если так: Код Program Lab2_1; var C:array[1..30] of integer; var i,j,n:integer; A,B,S:integer; x, T: integer; begin writeln('vvedite granitci intervala:'); write('A='); readln(A); write('B='); readln(B); n := 0; i := 1; repeat write('vvedite element massiva C[',i,']='); readln(x); i := i + 1; if x > 0 then begin s := 0; T := x; while T > 0 do begin s := s + (T mod 10); T := T div 10; end; if (s > A) and (s < B) then begin n := n + 1; C[n] := x end; end until x = 0; for i:=1 to n-1 do for j:=i+1 to n do if c[i]>c[j] then begin T:=c[i]; c[i]:=c[j]; c[j]:=T end; for i:=1 to n do writeln(c[i]); end. Сообщение отредактировано: volvo - |
Jane |
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: 0 |
volvo
Большое спасибо,только в этом месте с индексами что-то странное...: n := 0; repeat write('vvedite element massiva C[',n+1,']='); readln(x); |
volvo |
Сообщение
#4
|
Гость |
Jane
Почему странное? Все в порядке... Я же вначале N присвоил 0, вот чтобы у тебя не выдавалось сообщение 'vvedite element massiva C[0]=', я и вывожу n+1 |
Jane |
Сообщение
#5
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: 0 |
volvo
Ну...а вместо этого выдаётся C[1]= C[1]= C[1]= ну и т.д..... |
volvo |
Сообщение
#6
|
Гость |
Jane
Посмотри теперь - я подправил. Просто в моей версии число ВООБЩЕ не заносится в массив, если сумма его цифр не попадает в заданный интервал [A .. B]. Сейчас я просто добавил счетчик введенных чисел... |
Jane |
Сообщение
#7
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: 0 |
volvo
:thanks: Да!!!Теперь всё получается!!!ОГРОМНОЕ СПАСИБО!!! |
Jane |
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: 0 |
Реорганизуйте массив, исключив все элементы, содержащие повторяющиеся цифры, и сожмите массив влево, упорядочив по убыванию оставшиеся элементы.Нельзя использоавть дополнительные массивы.
Можно заменить Код while T > 0 do наbegin s := s + (T mod 10); T := T div 10; end; Код while T>0 do begin T1:=T mod 10; T:=T div 10; end; if T=T1 then или я глупости пишу???А если да,то что тогда делать после then??? Объясните мне,пожалста... |
Текстовая версия | 23.12.2024 19:34 |