C/C++

В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива

В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива, расположенных между первым и последним элементами.
На языке C
 #include  
#include

#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define LEFT 100
#define RIGTH (LEFT * 10)

void random_fill(double* box, size_t length)
{
size_t i = 0;

if (box == NULL || 0 == length)
{
return;
}

do
{
box[i] = RAND(LEFT, RIGTH) / 10.0;
}
while (++i < length);
}

double* create(double* box, size_t length)
{
if (box != NULL)
{
free(box);
}

box = (double*)malloc(length * sizeof(double));
random_fill(box, length);

return box;
}

double* destroy(double* box)
{
if (box != NULL)
{
free(box);
box = NULL;
}

return box;
}

void show(double* box, size_t length)
{
size_t i = 0;

if (box == NULL || 0 == length)
{
return;
}

do
{
printf(" %.1lf ", box[i]);
}
while (++i < length);
puts("");
}

double sum(double* begin, double* end)
{
double s = 0.0;

if (begin && end && begin < end)
{
do
{
s += *begin;
}
while (++begin != end);
}

return s;
}

int main(void) {
size_t n;
double* box = NULL;
double s;

printf("n: ");
scanf("%zu", &n);

box = create(box, n);
show(box, n);
s = sum(box + 1, box + n - 1);

printf("sum: %.1lf\n", s);

destroy(box);

return 0;
}
GN
Galym Nurpeissov
96 986
Лучший ответ

Похожие вопросы