Источник: Nuances of Programming
Чему вы научитесь в этой статье?
Проверять, является ли число (введенное пользователем) отрицательным или положительным.
Какие нужны знания для понимания этой программы?
Потребуются знания по следующим темам на языке Си:
- Понятие об операторах.
- Оператор if…else.
Работа программы
Эта программа принимает от пользователя число и проверяет, является ли оно положительным, отрицательным или нулем.
Ноль или отрицательное — структура if else
- Num ← 0.
- Read Num.
- If (Num > 0) Then. Begin. Print “Positive” End. Else if (Num<0) Then. Begin. Print “Negative” End. Else. Begin. Print “Zero” End.
Блок-схема
Объяснение программы
#include <stdio.h> int main() {
double num;
Сначала передается #include<stdio.h>.
Директива #include сообщает препроцессору на Си о необходимости включения в компилятор содержимого файла, указанного во входном потоке, а затем продолжения работы с остальной частью исходного файла. Заголовочный файл может содержать любой валидный фрагмент программы на Си.
Заголовочный файл stdio.h расшифровывается как “standard input output” («стандартный ввод/вывод»). В нем содержится информация, связанная с функциями ввода/вывода. Вот описание некоторых функций в stdio:
int main()
«int main» означает, что функция должна в конце выполнения вернуть какое-то целое число. При этом в конце программы возвращается 0, свидетельствуя об «успешном выполнении программы». В C89 main не указывался, а тип возвращаемого значения по умолчанию был int.
double num;
«double» — это тоже тип данных, который используется для представления чисел с плавающей запятой. Это 64-хбитный формат представления числа с плавающей запятой двойной точности, определяемый стандартом IEEE 754 для значения. Точность этого числа составляет 15 десятичных знаков.
printf("Enter a number: ");
scanf("%lf", &num);
- Функция printf выводит инструкцию Enter a number («введите число»).
- В функции scanf для типа данных double используется %lf.
if (num <= 0.0) {
if (num == 0.0)
printf("You entered 0.");
Здесь задействован вложенный оператор if. Вложенный If в языке программирования Си означает оператор If, помещенный внутрь другого оператора If. Вложенный If применяется на Си, когда нужно проверить условие внутри другого условия.
Было введено число 0.0, и в этом случае выводится you entered 0 («вы ввели 0»).
else printf("You entered a negative number.");
} else printf("You entered a positive number.");
return 0;
В этих строчках использован оператор else. Потому что, если бы было введено меньше 0.0, оператор else вывел бы you entered a negative number («вы ввели отрицательное число»).
Дальше идет второй оператор else, в случае если бы не было введено 0.0 или меньше 0.0. Тогда он вывел бы you entered a positive number («вы ввели положительное число»).
return 0 в функции main означает, что программа выполнена успешно.
Программа / исходный код с использованием «if….. else»
#include <stdio.h> int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
if (num <= 0.0) {
if (num == 0.0)
printf("You entered 0.");
else printf("You entered a negative number.");
} else printf("You entered a positive number.");
return 0;
}
Вывод:
Та же задача решается с помощью вложенного оператора «if else»:
#include <stdio.h> int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
if (num < 0.0)
printf("You entered a negative number.");
else if (num > 0.0)
printf("You entered a positive number.");
else printf("You entered 0.");
return 0;
}
Вывод:
Читайте также:
Перевод статьи VIGNESWARAN.S: C program to check whether a number is positive or negative