Написать функцию, находящую пару чисел, сумма которых меньше заданного числа - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д