Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Test Test Знаток (412), закрыт 12 лет назад
Дополнен 12 лет назад
Дан массив {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;
}
}
Дополнен 12 лет назад
m=0;
Лучший ответ
ra Высший разум (113247) 12 лет назад
#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;
}
Остальные ответы
Вова Шалай Ученик (57) 12 лет назад
во первых не м а м
предыдущие это m[i-1], а так, сделай копию массива и из неё предыдущие нормальные тяни
Сергей Небоженко Мыслитель (7124) 12 лет назад
for (i=0; i<10; i++)
{
if (abs(m)<1 && abs(m)>0)
{
m=0;
a"квадратнаяскобка"i"квадратнаяскобка"=a"квадратнаяскобка"i-1"квадратнаяскобка";
}
}

массив a"квадратнаяскобка"i"квадратнаяскобка" естественно
Похожие вопросы