Информатика, вопрос задал salammolekym , 11 месяцев назад

Дано натуральне число n та послідовність дійсних чисел a1, a2, …, an.
Знайти у заданій послідовності таке число, котре якомога наближене до
цілого числа.(На мові С)

Ответы на вопрос

Ответил KREC
0

Для знаходження числа в послідовності, яке якомога наближене до цілого числа, можна використовувати цикл та порівнювати різницю між кожним елементом послідовності та його округленим значенням до найближчого цілого. Ось приклад коду на мові C:

#include <stdio.h>

#include <math.h>

int main() {

   // Введення кількості елементів у послідовності

   int n;

   printf("Введіть кількість елементів у послідовності: ");

   scanf("%d", &n);

   // Введення послідовності чисел

   double sequence[n];

   printf("Введіть послідовність чисел:\n");

   for (int i = 0; i < n; i++) {

       scanf("%lf", &sequence[i]);

    // Ініціалізація змінних для знаходження найближчого цілого числа

   double closestNumber = sequence[0];

   double minDifference = fabs(round(sequence[0]) - sequence[0]);

   // Пошук найближчого цілого числа в послідовності

   for (int i = 1; i < n; i++) {

       double roundedNumber = round(sequence[i]);

       double difference = fabs(roundedNumber - sequence[i]);

       if (difference < minDifference) {

           closestNumber = sequence[i];

           minDifference = difference;

          // Виведення результату

   printf("Число, яке якомога наближене до цілого: %.2lf\n", closestNumber);

  return 0;

У цьому коді користувач вводить кількість елементів у послідовності та саму послідовність чисел. Програма знаходить число в послідовності, яке найбільше наближене до цілого числа, і виводить його.

Ответил KANIFAL
0

Ответ:

  • Для пошуку числа, яке найближче до цілого числа, можна використовувати такий підхід:
  • 1. Створіть змінну найближче_ціле та початково присвойте їй перше число з послідовності a1.
  • 2. Створіть змінну найближче_відстань та початково присвойте їй різницю між першим числом з послідовності a1 та його округленим значенням до найближчого цілого числа.
  • 3. Пройдіться по всіх числах в послідовності a1, a2, ..., an.
  • 4. Для кожного числа a, порівняйте різницю між ним та його округленим значенням до найближчого цілого числа з найближчою_відстанню.
  • 5. Якщо різниця між поточним числом a та його округленим значенням менша за найближчу_відстань, оновіть найближчу_ціле відповідно до поточного числа a та оновіть найближчу_відстань відповідно до різниці.
  • 6. Після проходу по всіх числах в послідовності, найближче_ціле буде містити число, яке найближче до цілого числа.
  • Отже, ось простий приклад коду на мові С, що реалізує цей підхід:
  • ```c
  • #include <stdio.h>
  • #include <math.h>
  • int main() {
  • int n;
  • float a, closest_integer, closest_distance;
  • printf("Введіть кількість чисел у послідовності: ");
  • scanf("%d", &n);
  • printf("Введіть числа у послідовності:\n");
  • scanf("%f", &a);
  • closest_integer = a; // Перше число буде найближчим до цілого за умови що воно є найменшою відстанню
  • closest_distance = fabs(a - round(a)); // Різниця між першим числом та його округленим значенням до найближчого цілого числа
  • for (int i = 1; i < n; i++) {
  • scanf("%f", &a);
  • float distance = fabs(a - round(a)); // Різниця між поточним числом a та його округленим значенням до найближчого цілого числа
  • if (distance < closest_distance) {
  • closest_integer = a;
  • closest_distance = distance;
  • }
  • }
  • printf("Число, яке найближче до цілого: %f\n", closest_integer);
  • return 0;
  • }
  • ```
  • Цей код спочатку запитує кількість чисел у послідовності та саму послідовність чисел від користувача. Потім він проходиться по кожному числі у послідовності та порівнює його з попереднім найближчим числом до цілого. На виході він виводить число, яке найближче до цілого числа.
Новые вопросы