Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ОБРАБОТКА И МОДИФИКАЦИЯ ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ

19K
04 декабря 2006 года
freejaile
9 / / 03.11.2006
Вот задача:
" Дана последовательность не более 30 ненулевых целых
чисел, последним числом в последовательности является 0. Вве-
дите последовательность в одномерный массив. Ис-
пользование дополнительных массивов запрещено."

задача легкая, но...нужно сформировать такой массив, чтоб при вводе пользователем нулевого элемента массив автоматически завершался....и ещё одно ограничение, о котором я к сожалению сейчас забыла :(

ВОБЩЕМ, ваши варианты этой задачки? =)
11K
04 декабря 2006 года
Salamansar
83 / / 29.11.2006
Два вопроса:
1. Элементы длжны вводиться сразу или последовательно(т.е. ввел один символ-число занеслось в массив)?
2. На каком языке нужна программа (впредь старайся всегда это указывать)
19K
04 декабря 2006 года
freejaile
9 / / 03.11.2006
1. насколько я поняла, последовательно
2. сори:rolleyes: Pascal
11K
04 декабря 2006 года
Salamansar
83 / / 29.11.2006
Цитата:
и ещё одно ограничение, о котором я к сожалению сейчас забыла


Ну как-так и не вспомнила?

Ну, из тех данных что ты мне дала я набросал примерно следуещее:

 
Код:
program c;
var i:integer; a:array[1..30]; f:byte;
begin
i:=1
while i<>0 do begin
readln(i);
f:=f+1;
a[f]:=i
end
end;


Программа конечно наипростейшая, хотя может быть если бы не твоя "девичья память" она могла быть и потруднее. Наверное недавно Pascal занялась?
263
04 декабря 2006 года
koltaviy
816 / / 16.12.2004
Цитата: Salamansar
Ну как-так и не вспомнила?

Ну, из тех данных что ты мне дала я набросал примерно следуещее:
 
Код:
program c;
var i:integer; a:array[1..30]; f:byte;
begin
i:=1
while i<>0 do begin
readln(i);
f:=f+1;
a[f]:=i
end
end;


Программа конечно наипростейшая, хотя может быть если бы не твоя "девичья память" она могла быть и потруднее. Наверное недавно Pascal занялась?


А те не кажется что цикл должен быть с постусловием?!!

242
04 декабря 2006 года
Оlga
2.2K / / 04.02.2006
Паскаль не знаю, но кое что меня все же смущает:
1)выход из цикла основан только на введенных юзером числом, а если он умный сто цифр захочет ввести? прога вылетит.
2)помоему размер массива должен быть 31, но это несущественно.
 
Код:
//C
int i, a[31]={0};
short f = 0;
while( f < 30 )
{
  scanf("%d", &i);
  if(i == 0) break;
  a[f++] = i;
}
263
04 декабря 2006 года
koltaviy
816 / / 16.12.2004
Цитата: OlgaKr
Паскаль не знаю, но кое что меня все же смущает:
1)выход из цикла основан только на введенных юзером числом, а если он умный сто цифр захочет ввести? прога вылетит.
2)помоему размер массива должен быть 31, но это несущественно.
 
Код:
//C
int i, a[31]={0};
short f = 0;
while( f < 30 )
{
  scanf("%d", &i);
  if(i == 0) break;
  a[f++] = i;
}


Тогда уж можно и так:):

 
Код:
//C
int i, a[30]={0};
for (short f = 0; f < (30 - 1); f++)
{scanf("%i", &i);
  if (i == 0) break;
  a[f] = i;
}
242
04 декабря 2006 года
Оlga
2.2K / / 04.02.2006
2koltaviy
разницы не вижу =)
11K
04 декабря 2006 года
Salamansar
83 / / 29.11.2006
Цитата:
А те не кажется что цикл должен быть с постусловием?!!

А какая разница?

Цитата:
1)выход из цикла основан только на введенных юзером числом, а если он умный сто цифр захочет ввести? прога вылетит.

и то верно, просчет, но можно и так:

 
Код:
program c;
var i:integer; a:array[1..30]; f,k:byte;
begin
repeat
readln(i);
k:=k+1;
f:=f+1;
a[f]:=i
until ((i=0) or (k=30));
end;


Цитата:
//C
int i, a[30]={0};
for (short f = 0; f < (30 - 1); f++)
{scanf("%i", &i);
if (i == 0) break;
a[f] = i;
}


Текст не Pascal, наверное C да? Клянусь никогда в жизни не видел кода С (во я древний да?).

242
04 декабря 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Текст не Pascal, наверное C да? Клянусь никогда в жизни не видел кода С (во я древний да?).


очень =), кстати язык я написала, действительно С.
а я Паскаль, если бы не форум, ещё долго б не увидела.

263
04 декабря 2006 года
koltaviy
816 / / 16.12.2004
Цитата: OlgaKr
2koltaviy
разницы не вижу =)


Я ж не говорил, что разница есть!! Просто альтернатива!!

263
04 декабря 2006 года
koltaviy
816 / / 16.12.2004
Цитата: Salamansar
А какая разница?


Никакой разницы!!:) Просто грамотнее, чем брать значение 1 неизвестно откуда!!;)

11K
04 декабря 2006 года
Salamansar
83 / / 29.11.2006
Цитата:
Никакой разницы!! Просто грамотнее, чем брать значение 1 неизвестно откуда!!


Наверное ты прав.:) Просто у меня мания ставить флажки, счетчики и другую ерунду куда ни попадя. (бывало даже так, что букв на клавиатуре не хватало - все на счетчики пораздавал).

19K
05 декабря 2006 года
freejaile
9 / / 03.11.2006
Цитата: Salamansar

1.Ну как-так и не вспомнила?
2.Наверное недавно Pascal занялась?



1.ну раз вы не употребили этого условия, которое нельзя использовать, то и вспоминать не нужно =)
2. ну вобщем да)

последнее вроде правильно...пасибачки)) может, потом ещё вопросы возникнут или дополнения....

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог