Top.Mail.Ru
Ответы
Аватар пользователя
13лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Задание с массивами в C++

Дополнен

Дан массив {3.24, -0.16, 2.28, -0.16, -3.22, 7.14, 0.88, -3.20, 0.99, 4.15} и в нём нужно :сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившееся в конце массива место заполнить нулями.
У меня получилось превратить элементы которые не выше 1 в 0, а вот как их заместить предыдущими элементами не могу понять.
Вот отрывок из кода:
for (i=0; i<10; i++)
{
if (abs(m)<1 && abs(m)>0)
{
m=0;
}
}

Дополнен

m=0;

По дате
По рейтингу
Аватар пользователя
Новичок
13лет

#include <iostream>
#include <cstring>
#include <cmath>

using namespace std;

int main() {
int i;
double m[10] = {3.24, -0.16, 2.28, -0.16, -3.22, 7.14, 0.88, -3.20, 0.99, 4.15};
for (i = 0; i < 10; i++) {
if (abs(m[ i ]) < 1) {
memmove(&m[ i ], &m[i + 1], (9 - i)*sizeof(m[0]));
m[9] = 0;
}
}
return 0;
}

Аватар пользователя
Мыслитель
13лет

for (i=0; i<10; i++)
{
if (abs(m)<1 && abs(m)>0)
{
m=0;
a"квадратнаяскобка"i"квадратнаяскобка"=a"квадратнаяскобка"i-1"квадратнаяскобка";
}
}

массив a"квадратнаяскобка"i"квадратнаяскобка" естественно

Аватар пользователя
Ученик
13лет

во первых не м а м
предыдущие это m[i-1], а так, сделай копию массива и из неё предыдущие нормальные тяни

Аватар пользователя
Мастер
13лет

в паскале помог бы