#include <stddef.h> #include <stdio.h> #include <stdlib.h> void init_vector(double* v, size_t len, ptrdiff_t incr) { for (size_t i = 0; i < len; ++i) { v[i*incr] = i + 1; } } double sum(double* x, size_t len, ptrdiff_t incr) { double result = 0; for (size_t i = 0; i < len; ++i) { result += x[i * incr]; } return result; } int main() { printf("vector length = "); size_t len; if (scanf("%zu", &len) != 1) return 1; printf("\nOk, vector length = %zu\n", len); double* vector = (double*) malloc(sizeof(double) * len); if (!vector) { printf("unable to allocate heap memory for %zu double values\n", len); return 1; } init_vector(vector, len, 1); printf("sum = %lg\n", sum(vector, len, 1)); free(vector); } |