Форум программистов, компьютерный форум CyberForum.ru

упорядочить массив - C++

Восстановить пароль Регистрация
 
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
22.06.2010, 16:37     упорядочить массив #1
Сжать массив, удалив из него все элементы, модуль которых превышает 1. Освободившиеся в конце массива элементы заполнить нулями.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
main()
{
float mas[20];
int n,i,j;
cin>>n;
for (i=0;i<n;i++)
cin>>mas[i];
for (i=0;i<n;i++)
if (fabs(mas[i])>=1)
{
for (j=i;j<n-1;j++)
mas[j]=mas[j+1];
i=i-1;n=n-1;
}
for (i=0;i<n;i++)
cout<<mas[i]<<" ";
getch ();
return 0;
}
программу сделала, а вот в конце заполнить нулями не получается..
куда надо вставить строку ? чтоб нули в конце массива появились
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Scythian
 Аватар для Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
22.06.2010, 17:15     упорядочить массив #2
C++
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
#include <iostream.h>
//#include <stdio.h>      это здесь лишнее
#include <math.h>
#include <conio.h>
//#include <string.h>    аналогично
main()
{
float mas[20];
int n,i,j,m;
cin>>n;
m=n;
for (i=0;i<n;i++)
    cin>>mas[i];
for (i=0;i<n;i++)
    if (fabs(mas[i])>=1)
    {
    for (j=i;j<n-1;j++)
        mas[j]=mas[j+1];
    i=i-1;
    n=n-1;
}
for (i=0;i<m;i++)
    if(i<n)
        cout<<mas[i]<<" ";
    else
    {
        mas[i]=0;
        cout<<mas[i]<<" ";
    }
getch ();
return 0;
}
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
22.06.2010, 17:37     упорядочить массив #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <algorithm>
#include <iterator>
#include <iostream>
 
bool LessEqual1(double arg) {
  return std::abs(arg) <= 1.0;
}
 
int main() {
        double arr[] = { 0.5, 3.4, 5.7, -2.0, -0.3, -4.0, 1.0, 0.0 };
  const size_t size  = sizeof(arr) / sizeof(arr[0]);
 
  double* it = std::stable_partition(arr, arr + size, LessEqual1);
               std::fill            (it , arr + size, 0.0);
 
  std::copy(arr, arr + size, std::ostream_iterator<double>(std::cout, " "));
 
  return 0;
}
Результат: http://codepad.org/nPO5VB3j
малыш_Викусик
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 12
22.06.2010, 17:39  [ТС]     упорядочить массив #4
спасибо большое!
а насчет лишних библиотек это ничего.
нам говорят пишите все и всё.
Yandex
Объявления
22.06.2010, 17:39     упорядочить массив
Ответ Создать тему
Опции темы

Текущее время: 12:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru