lab3 task2

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <ctype.h> #define MAX 100 // Перевірений ввід цілого числа int ввестиЦілеЧисло() { int значення; char перевірка; while (scanf("%d%c", &значення, &перевірка) != 2 || перевірка != '\n') { printf("Некоректне введення. Введіть ціле число: "); while (getchar() != '\n'); // очищення буфера } return значення; } // Введення масиву з клавіатури з перевіркою void ввестиЗКлавіатури(int масив[], int n) { for (int i = 0; i < n; i++) { printf("Елемент [%d]: ", i); масив[i] = ввестиЦілеЧисло(); } } // Випадкове заповнення void згенеруватиМасив(int масив[], int n) { srand(time(NULL)); for (int i = 0; i < n; i++) { масив[i] = rand() % 101 - 50; // від -50 до 50 } } // Обчислення суми між першим і останнім додатніми int сумаМіжДодатніми(int масив[], int n) { int перший = -1, останній = -1; for (int i = 0; i < n; i++) { if (масив[i] > 0) { перший = i; break; } } for (int i = n - 1; i >= 0; i--) { if (масив[i] > 0) { останній = i; break; } } if (перший == -1 || останній == -1 || перший >= останній) { return 0; } int сума = 0; for (int i = перший + 1; i < останній; i++) { сума += масив[i]; } return сума; } // Вивід масиву void вивестиМасив(int масив[], int n) { printf("Масив: "); for (int i = 0; i < n; i++) { printf("%d ", масив[i]); } printf("\n"); } int main() { int масив[MAX]; int n, вибір; // Введення кількості елементів з перевіркою do { printf("Введіть кількість елементів масиву (1–100): "); n = ввестиЦілеЧисло(); if (n < 1 || n > MAX) { printf("Число має бути в межах від 1 до 100.\n"); } } while (n < 1 || n > MAX); // Вибір способу заповнення do { printf("Оберіть спосіб заповнення масиву:\n"); printf("1 — введення з клавіатури\n"); printf("2 — випадкові числа\n"); printf("Ваш вибір: "); вибір = ввестиЦілеЧисло(); if (вибір != 1 && вибір != 2) { printf("Невірний вибір. Спробуйте ще раз.\n"); } } while (вибір != 1 && вибір != 2); if (вибір == 1) { ввестиЗКлавіатури(масив, n); } else { згенеруватиМасив(масив, n); } вивестиМасив(масив, n); int результат = сумаМіжДодатніми(масив, n); printf("Сума елементів між першим та останнім додатними: %d\n", результат); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines