Как проверить что число целое c
Перейти к содержимому

Как проверить что число целое c

  • автор:

Как ввести целое число и определить, верно ли, что все его цифры четные (язык Си)?

Добрый день.
Попалась задачка. Надо ввести целое число, а затем определить чётность и нечётность всех цифр.
Пробовал вот так:

int main(void) 0) < if((a%10)%2==0) printf("YES "); else printf("NO "); a/=10; >return 0; >

Увы, код показывает чётность и нечётность каждой цифры, однако мне необходимо, чтобы он выводил»NO» даже в том случае, если в числе есть хоть одна нечётная цифра (с выводом «YES» аналогичная история). Не могли вы подсказать, в чём ошибка? Чувствую, что я неправильно воспользовался операторами и где-то тут накосячил.

  • Вопрос задан более двух лет назад
  • 2211 просмотров

как проверить целое ли число язык си

мне нужно что бы пользователь ввел три целых чисел а если числа не целые то программа закрывалась я пытался делать проверку вот пример только здесь я зделал одно число что бы было проще забыл сказать нельзя использовать библеотеку math.h

int main() < int num1 = 0; scanf("%d", &num1); if (num1 % 1 != 0)< printf("eror"); >printf("%d", num1); > 

только здесь оно округляет число сразу после ввода а это мне не нужно дальше я поменял переменную на double но компилятор стал ругать меня

int main() < double num1; scanf("%lf", &num1); if (num1 % 1 !=0) < printf("eror"); >printf("%lf", num1); > 

помогите решить эту проблему
Отслеживать
задан 19 июн 2021 в 10:01
Михаил Кузнецов Михаил Кузнецов
29 1 1 золотой знак 1 1 серебряный знак 6 6 бронзовых знаков

Остаток от деления вещественного числа на 1 — это сильно :-). Сделайте проще: используйте приведение типа в условии (int) num1 != num1 . Кроме этого, Ваша программа напечатает число в любом случае, даже если оно не «целое». Но это уже другая история.

19 июн 2021 в 10:15

я сделал вот так ((int)num1 % 1 != num1) и все работает спасибо. проверил еще так работает (num1 % 1 != num1)

19 июн 2021 в 10:25

нееет! зачем (int)num1 % 1 ?! приведение типа уже делает целое число, зачем для целого числа бесполезное %1 . Тем более, что итоговая проверка с таким условием будет неверной.

19 июн 2021 в 10:28
мантисса типа double имеет размер 52 бита. К типу int нельзя приводить. Только к int64_t.
19 июн 2021 в 10:35

не судите строго я только начал учить программирование :3 я просто скопировал и вставил в место старого условия и оно не работает( или я вас не правильно понял

19 июн 2021 в 10:35

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

# include # include # include static inline bool isint ( double d ) < return d == (int64_t)d ; >int main()
isint(3) = 1 isint(3.1) = 0 

дополнение

Если нужна точность и важность пределов целочисленного типа, то нужен двойной контроль. Сначала считываем число, потом пишем в строку. Будет считать, что введённое выражение удовлетворяет условиям, если запись целочисленного числа в сторку совпадает с введённым выражением. Не поддерживается запись с экспонентой 1e1 , с точкой 1.0 и положительное число со знаком плюс +1 .

char s[100] ; scanf("%99s",s); int i ; sscanf(s,"%d",&i); char s2[100] ; sprintf(s2,"%d",i); if (strcmp(s,s2)==0) printf("integer %d\n",i); else printf("is not integer %s\n",s); 
integer 1234567890 is not integer 12345678901 

Как сделать проверку целого числа на языке Си?

— — — —
Нужно проверить число при вводе на то, чтобы оно было положительным и целым.
Вот как у меня получилась первая часть, а как проверить его целое оно или нет, я незнаю:
if((x>0&&. ))
Подскажите пожалуйста, принимается любая помощь. Заранее спасибо!

Лучший ответ
if (x > 0 && !floor(x))
<
// Код
>
Остальные ответы

При вводе обычно набирают символы. Поэтому строку надо проверить на наличие ненулевых цифр после десятичной точки.
Проверку, с переводом в бинарный формат, можно иногда обмануть, так целые десятичные числа не всегда круглые для двоичных!

Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Проверка, является ли переменная целым числом

Часто при программировании на Python возникает необходимость проверить, является ли значение переменной целым числом. Это может быть полезно в различных ситуациях, например, при валидации пользовательского ввода или при обработке данных разного типа. Рассмотрим пример.

value = "123"

Если попытаться использовать это значение в математических операциях, возникнет ошибка, так как это строка, а не число. Для избежания таких ошибок и проводится проверка типа переменной.

Как проверить, является ли переменная целым числом

Python предоставляет встроенную функцию isinstance() , которая позволяет проверить, принадлежит ли объект к определенному классу или типу данных.

value = 123 print(isinstance(value, int))

В этом примере isinstance() вернет True , если значение является целым числом ( int ), и False в противном случае.

Проверка на целочисленность для чисел с плавающей точкой

Если работа ведется с числами с плавающей точкой ( float ), которые могут быть целыми, можно использовать метод is_integer() .

value = 123.0 print(value.is_integer())

В этом примере value.is_integer() вернет True , если число с плавающей точкой является целым числом, и False в противном случае.

Заключение

Проверка, является ли переменная целым числом, в Python — простая и полезная операция, которую можно легко реализовать с помощью встроенных функций и методов. Она помогает избежать ошибок при выполнении операций с переменными разных типов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *