Who is Antonio написав:замінити одиницями елементи масиву
для цього треба створити функцію
void update_array_values(float *arr, int count, float value) {
for(int i = 0; i < count; ++i)
arr[i] = value;
}
Who is Antonio написав:, які знаходяться після найменшого елементу,
я би формулював інакше, ", індекс яких більший ніж індекс мінімального елемента",
пошуком індекса мінімального елемента займеться окрема функція
int get_index_of_minimum(float *const arr, int const count) {
int i_min = 0;
for(int i = 1; i < count; ++i)
if(arr[i] < arr[i_min])
i_min = i;
return i_min;
}
Who is Antonio написав:та знайти суму всіх елементів
для цього теж треба створити функцію
float get_sum_of_array(float *const arr, int const count) {
float sum = 0.f;
for(int i = 0; i < count; ++i)
sum += arr[i];
return sum;
}
Who is Antonio написав:які знаходяться до найменшого елементу
", індекс яких менший ніж індекс мінімального елемента". Вже маємо функцію для цього.
Як користувач я хочу мати можливість вивести масив одним рядком коду. Для цього треба функцію
void print_array_values(char const *const pre, float *const arr, int const count, char const *const post) {
printf_s("%s[ ", pre);
for(int i = 0; i < count; ++i)
printf_s("%6.3f ", arr[i]);
printf_s("]%s", post);
}
, яку можна буде викликати одним рядком
print_array_values("_text_pre_", arr, SIZE, "_text_post_");
Тепер збираємо все це в 1 файл (*.c)
#include <stdio.h>
void update_array_values(float *const arr, int const count, float const value);
int get_index_of_minimum(float *const arr, int const count);
float get_sum_of_array(float *const arr, int const count);
void print_array_values(
char const *const pre,
float *const arr, int const count,
char const *const post
);
#define SIZE 16
int main(int argc, char *argv[]) {
float arr[SIZE] = {
2.34f, -3.42f, 0.56f, -3.71f, 1.25f, 6.37f, 0.123f, -45.821f,
32.5f, 0.94f, 0.54f, -1.26f, 2.36f, 4.32f, -5.345f, 4.876f
};
int i_min = get_index_of_minimum(arr, SIZE);
print_array_values("Before : ", arr, SIZE, "\r\n");
update_array_values(arr + (i_min + 1), SIZE - (i_min + 1), 1.f);
print_array_values("After : ", arr, SIZE, "\r\n");
float sum = get_sum_of_array(arr, i_min);
printf_s("%4.3f is the sum ", sum);
print_array_values("of ", arr, i_min, "\r\n");
return 0;
}
void update_array_values(float *const arr, int const count, float const value) {
for(int i = 0; i < count; ++i)
arr[i] = value;
}
int get_index_of_minimum(float *const arr, int const count) {
int i_min = 0;
for(int i = 1; i < count; ++i)
if(arr[i] < arr[i_min])
i_min = i;
return i_min;
}
float get_sum_of_array(float *const arr, int const count) {
float sum = 0.f;
for(int i = 0; i < count; ++i)
sum += arr[i];
return sum;
}
void print_array_values(
char const *const pre,
float *const arr, int const count,
char const *const post
) {
printf_s("%s[ ", pre);
for(int i = 0; i < count; ++i)
printf_s("%6.3f ", arr[i]);
printf_s("]%s", post);
}
▼Секрет успіху
Декомпозиція задачі (про яку koala часто згадує). Розбивай програму на функції. Кожна з них має виконувати тільки одну корисну дію. Тоді програмуваня принесе задоволеня.