Условие задачи
В целочисленном динамическом массиве B[6] определить сумму положительных элементов, делящихся на 3 без остатка и поставить ее на место максимального элемента массива A[5].
Решение задачи на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#include <stdio.h> #include <malloc.h> int main() { // указатели под массивы int *B, *A; // выделяем память под массив B B = (int*)malloc(sizeof(int) * 6); // вывод в консоль printf("Input B[6]:\n"); // ввод элементов массива B for (int i = 0; i < 6; i++) scanf_s("%d", &B[i]); // читаем из консоли // выделяем память под массив A A = (int*)malloc(sizeof(int) * 5); // вывод в консоль printf("Input A[5]:\n"); // ввод элементов массива А for (int i = 0; i < 5; i++) scanf_s("%d", &A[i]); // читаем из консоли // тут будет сумма int sum = 0; // перебираем все элементы массива B for (int i = 0; i < 6; i++) if ((B[i] > 0) && (B[i] % 3 == 0)) // находим сумму положительных элементов делящихся на 3 sum += B[i]; // ищем максимальный элемент в массиве А // maxIndex - индекс максимального элемента (в начале сделаем равным 0) int maxIndex = 0; // пройдемся по остальным элементам массива A и найдем максимальный for (int i = 1; i < 5; i++) if (A[i] > A[maxIndex]) maxIndex = i; // ставим сумму на место максимального элемента A[maxIndex] = sum; // выводим новый A[maxIndex] в консоль printf("%d", A[maxIndex]); // освобождаем память free(B); free(A); return 0; } |
Результат выполнения программы
Поделиться в соц. сетях: