Написать функцию, находящую пару чисел, сумма которых меньше заданного числа - C (СИ)
Формулировка задачи:
Здравствуйте,помогите пожалуйста решить задачу. Требуется написать функцию,принимающую введенное число и затем произвольную последовательность чисел( до тех пор пока пользователь не введет -1 ). Функция проверяет есть ли во введенной последовательности пара чисел сумма которых меньше заданного числа . Если да - функция возвращает 1, если нет - 0. Пример : заданное число - 8, последовательность - 7,2,8,10,5,6,2,-1 . Функция остановится на 5 , т.к. 2+5<8. Я написал вот такой код :
Какую последовательность я бы ни вводил выдает 1. Где я ошибся ?
Заранее спасибо за помощь
Листинг программы
- #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;
- }
Решение задачи: «Написать функцию, находящую пару чисел, сумма которых меньше заданного числа»
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;
- }
Объяснение кода листинга программы
- Входные данные: k (число), first (число).
- Переменная
a
инициализируется значением 0. - Переменная
sum
инициализируется значением 0. - Запускается цикл while, который выполняется до тех пор, пока значение переменной
a
не станет равным -1. - Внутри цикла пользователю предлагается ввести целое число.
- С помощью функции scanf значение введенного числа сохраняется в переменной
a
. - Переменная
sum
получает значение суммы переменныхa
иfirst
. - Если значение переменной
sum
меньше k, то функция возвращает 1. - Если значение переменной
sum
больше или равно k, то цикл продолжается. - Если значение переменной
a
стало равным -1, то цикл завершается. - Функция возвращает 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д