IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Лёгкая задача на одномерный массив, Помощь в реализации на С++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Олег

Репутация: -  0  +


1. Ввести целое число N. Выделить из этого числа цифры, кратные 3, и записать их в одномерный массив.

Вот задача.
Как я помню ПАСКАЛЬ..
вот вроде реализация.


А на си..пока незнаю
помогите.

A - МАССИВ ;
chislo - это string!!!!

Код
begin
read(chislo);
i:=1;  
j:=1;      
  repeat  
      begin;  
         if ord(chislo[i])>=48 and ord(chislo[i])<=57 then     ('Tipa proverka na ot 0 do 9')
            begin
    if ( ord(chislo[i]) mod 3 )= 0 then    (Proverka vrode na nulevoy ostatok)
         begin
               a[j]:=chislo[i];        
                J :=j+1;
        end;
            end;
         i:=i+1;
   until i=length(chislo) or (ord(chislo[i])<=48 or ord(chislo[i])>=57;


+ концовка


вроде алгоритм очень простой.
конечно я его сдела более замухрированным))
Объясните...
как на С++ писать такую задачу..
и ещё вопрос....
В паскале перед концом можно поставить "readln;" и программа не пройдёт сразу, а будет ждать твоего нажатия клавиши.
объясните...что можно поставить в самом конце., чтобы программа, не выполнила действие сразу и не не исчесла, а дождалась хотя бы нажатия любой клавиши!


Очень помощь нужна.
пожалуйста(((

Сообщение отредактировано: Олежечег(быв. Олежик) -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ну... как вариант.
проверяла в билдере (то есть можешь считать, что не проверяла никак smile.gif )
int main(int argc, char* argv[])
{
int a, i=-1, ar[5];
cout<<"Pls, input the number"<<endl;
cin>>a;
while (a!=0){
if ((a%10)%3==0) {
i++;
ar[i]=a%10;
}
a/=10;
}
for (int j=0; j<=i; j++)
cout<<ar[j];
getch();
return 0;
}


моменты, которые оставила на твое усмотрение:
1) как задавать размерность массива (как ты это делал в паскале - я не видела)
2) порядок сохранения в массиве - обратный (то есть для числа 319 там будет 93)
выводи, как тебе удобнее - хоть в прямом, хоть в обратном порядке
3) строки не использовала, контроля на корректность ввода нет.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 3:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name