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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 08:38   #1
ENTER311
 
Регистрация: 15.12.2011
Сообщений: 4
По умолчанию одномерные массивы

Введите массив A[n]. Если в массиве не менее двух положительных элементов, то уменьшить все четные элементы массива на 2; иначе - найти номер последнего минимального элемента массива.
ENTER311 вне форума Ответить с цитированием
Старый 21.12.2011, 09:52   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
c:=0;
For i:=1 to n do begin readln(a[i]);
if a[i]>0 then inc(c);end;
k:=1;
writeln('count+ =',c);
For i:=1 to n do begin
if (c>=2) and (not odd(a[i])) then a[i]:=a[i]-2
else if (c<2) and (a[k]<=a[i]) then k:=i;
write(a[i]);
end;
writeln;
if c<2 then write('last min #',k);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.12.2011, 13:03   #3
aizhan_1812
 
Регистрация: 21.12.2011
Сообщений: 3
По умолчанию

подскажите пожал-ста, где в проге недочеты, вот условие:
вычитание двух многозначных чисел (многозначные числа заданы в виде одномерных массивов)

вот наработки:

program kursach;
uses crt;
const n=10;
var A:array[1..n] of integer;
B:array[1..n] of integer;
C:array[1..n] of integer;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do
A[i]:=random(10);
writeln(' vvedennyi massiv A[i]:');
for i:=1 to n do
write(A[i]:4);
writeln;
for i:=1 to n do
B[i]:=random(10);
writeln(' vvedennyi massiv B[i]:');
for i:=1 to n do
write(B[i]:4);
writeln;
writeln(' vycheslennyi massiv C[i]:');
for i:=1 to n do A[i]:=a[n-i+1];
for i:=1 to n do begin
if A[i]<B[i] then begin
A[i]:=A[i]+10;
A[i-1]:=A[i-1]-1; end;
C[i]:=A[i]-B[i];
{for k:=n downto 1 do
while C[k]=0 do begin
k:=k-1;end;}
write(C[i]:4);
end;
readln
end.
aizhan_1812 вне форума Ответить с цитированием
Старый 21.12.2011, 13:10   #4
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

Оформите код правильно. Его невозможно читать.

Думаю проблема в том, что число Б может быть больше А. А это повлечет проблемы при вычитании "столбиком".
Хотя могу ошибаться...
Sna1L вне форума Ответить с цитированием
Старый 21.12.2011, 21:36   #5
aizhan_1812
 
Регистрация: 21.12.2011
Сообщений: 3
По умолчанию

program kursach;
uses crt;
const n=10;
var A:array[1..n] of integer;
B:array[1..n] of integer;
C:array[1..n] of integer;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do
A[i]:=random(10);
writeln(' vvedennyi massiv A[i]:');
for i:=1 to n do
write(A[i]:4);
writeln;
for i:=1 to n do
B[i]:=random(10);
writeln(' vvedennyi massiv B[i]:');
for i:=1 to n do
write(B[i]:4);
writeln;
writeln(' vycheslennyi massiv C[i]:');
for i:=1 to n do A[i]:=a[n-i+1];
for i:=1 to n do begin
if A[i]<B[i] then begin
A[i]:=A[i]+10;
A[i-1]:=A[i-1]-1; end;
C[i]:=A[i]-B[i];
{for k:=n downto 1 do
while C[k]=0 do begin
k:=k-1;end;}
write(C[i]:4);
end;
readln
end.

в результате прога занимая десятку, в предыдущем разряде не вычитывает, вот непонятно почему?
подскажите еще как написать условие, при котором число А больше числа Б.
заранее спасибо
aizhan_1812 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си Одномерные массивы mad_dm Помощь студентам 0 24.11.2011 16:30
Одномерные массивы ~Sл@\/яH~ Общие вопросы C/C++ 3 20.11.2011 16:29
одномерные массивы blitz Паскаль, Turbo Pascal, PascalABC.NET 4 13.04.2011 23:46
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
C++ Одномерные массивы. rus_rock_no_dead Помощь студентам 1 20.01.2009 15:31