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

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

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

Здравствуйте,помогите пожалуйста решить задачу. Требуется написать функцию,принимающую введенное число и затем произвольную последовательность чисел( до тех пор пока пользователь не введет -1 ). Функция проверяет есть ли во введенной последовательности пара чисел сумма которых меньше заданного числа . Если да - функция возвращает 1, если нет - 0. Пример : заданное число - 8, последовательность - 7,2,8,10,5,6,2,-1 . Функция остановится на 5 , т.к. 2+5<8. Я написал вот такой код :
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int sum_of_num(int k,int a,int flag,int temp,int sum);
  5.  
  6. void main()
  7. {
  8.  
  9. int a,k,flag,temp,sum;
  10. sum = 0;
  11. flag = 0;
  12. temp = 0;
  13.  
  14. printf("Please enter the integer number: ");
  15. scanf("%d", &k);
  16. printf("Please enter the integer number: ");
  17. scanf("%d", &a);
  18. printf("%d\n", sum_of_num(k,a,flag,temp,sum));
  19. }
  20. int sum_of_num(int k, int a, int temp, int flag, int sum)
  21. {
  22.  
  23. while (a != -1)
  24. {
  25. printf("Please enter the integer number: ");
  26. scanf("%d", &a);
  27. temp = a;
  28. sum = temp + a;
  29.  
  30. if (sum < k) {
  31. flag = 1;
  32. break;
  33. }
  34.  
  35. }
  36. return flag;
  37. }
Какую последовательность я бы ни вводил выдает 1. Где я ошибся ? Заранее спасибо за помощь

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

textual
Листинг программы
  1. int sum_of_num(int k,int first)
  2. {
  3.     int a=0, sum=0;
  4.     while (a != -1)
  5.     {
  6.         printf("Please enter the integer number: ");
  7.         scanf("%d", &a);
  8.         sum = a+first;
  9.         if (sum < k)
  10.             return 1;
  11.     }
  12.     return 0;
  13. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы