Написать функцию, находящую пару чисел, сумма которых меньше заданного числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте,помогите пожалуйста решить задачу. Требуется написать функцию,принимающую введенное число и затем произвольную последовательность чисел( до тех пор пока пользователь не введет -1 ). Функция проверяет есть ли во введенной последовательности пара чисел сумма которых меньше заданного числа . Если да - функция возвращает 1, если нет - 0. Пример : заданное число - 8, последовательность - 7,2,8,10,5,6,2,-1 . Функция остановится на 5 , т.к. 2+5<8. Я написал вот такой код :
#include <stdio.h>
#include <math.h>

int sum_of_num(int k,int a,int flag,int temp,int sum);

void main()
{

    int a,k,flag,temp,sum;
    
    sum = 0;
    flag = 0;
    temp = 0;

    printf("Please enter the integer number: ");
    scanf("%d", &k);
    printf("Please enter the integer number: ");
    scanf("%d", &a);
    printf("%d\n", sum_of_num(k,a,flag,temp,sum));
}
 
int sum_of_num(int k, int a, int temp, int flag, int sum)
{

    while (a != -1)
    {
        printf("Please enter the integer number: ");
        scanf("%d", &a);
 
        temp = a;
        sum = temp + a;

        if (sum < k) {
            flag = 1;
            break;
        }

    }
    return flag;
}
Какую последовательность я бы ни вводил выдает 1. Где я ошибся ? Заранее спасибо за помощь

Решение задачи: «Написать функцию, находящую пару чисел, сумма которых меньше заданного числа»

textual
Листинг программы
int sum_of_num(int k,int first)
{
    int a=0, sum=0;
    while (a != -1)
    {
        printf("Please enter the integer number: ");
        scanf("%d", &a);
        sum = a+first;
        if (sum < k) 
            return 1;
    }
    return 0;
}

Объяснение кода листинга программы

  1. Входные данные: k (число), first (число).
  2. Переменная a инициализируется значением 0.
  3. Переменная sum инициализируется значением 0.
  4. Запускается цикл while, который выполняется до тех пор, пока значение переменной a не станет равным -1.
  5. Внутри цикла пользователю предлагается ввести целое число.
  6. С помощью функции scanf значение введенного числа сохраняется в переменной a.
  7. Переменная sum получает значение суммы переменных a и first.
  8. Если значение переменной sum меньше k, то функция возвращает 1.
  9. Если значение переменной sum больше или равно k, то цикл продолжается.
  10. Если значение переменной a стало равным -1, то цикл завершается.
  11. Функция возвращает 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы