Мне нужно написать программу, в которой main вызывает другие функции, которые проверяют ряд чисел, если они меньше числа, все ли числа ряда находятся между двумя пределами и если какие-либо из них отрицательны.Мой код возвращает значения 1 для истинных и 0 для ложных, но присваивание требует, чтобы они были напечатаны как «истина» или «ложь». Я не уверен, как получить ответы типа bool для печати в виде строки из printf. Я использовал if (atl == false) printf ("false"); в моем at_least.c и в main.c, но он возвращает только длинную строку истинного или ложного (например: истинно истинно ....). Я не уверен, что это правильный код, и я помещаю его не в то место, или был какой-то другой код, который мне нужно использовать.
Это мой main.c:
#include "my.h"
int main (void)
{
int x;
int count = 0;
int sum = 0;
double average = 0.0;
int largest = INT_MIN;
int smallest = INT_MAX;
bool atlst = false;
bool bet = true;
bool neg = false;
int end;
while ((end = scanf("%d",&x)) != EOF)
{
sumall(x, &sum); //calling function sumall
count++;
larger_smaller(x, &largest, &smallest); //calling function larger_smaller
if (atlst == false)
at_least(x, &atlst); //calling function at_least if x < 50
if (bet == true)
between(x, &bet); //calling function between if x is between 30 and 40 (inclusive)
if (neg == false)
negative(x, &neg); //calling function negative if x < 0
}
average = (double) sum / count;
print(count, sum, average, largest, smallest, atlst, bet, neg);
return;
}
мои результаты для набора чисел:
The number of integers is: 15
The sum is : 3844
The average is : 256.27
The largest is : 987
The smallest is : -28
At least one is < 50 : 1 //This needs to be true
All between 30 and 40 : 0 //This needs to be false
At least one is negative : 1 //This needs to be true
Это на языке C, по которому я, кажется, не могу найти много информации.
Заранее благодарим за помощь!
ПРИЛОЖЕНИЕ:
Это повторяется из ответа ниже.
Это работало для функций at_least и negative, но не для функции between. У меня
void between(int x, bool* bet)
{
if (x >= LOWER && x <= UPPER)
*bet = false;
return;
}
в качестве кода. Я не уверен, что случилось.