Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 07.10.2024
Сообщений: 2

Проверка на целочисленность числа

07.10.2024, 22:59. Показов 2732. Ответов 20

Студворк — интернет-сервис помощи студентам
Здравствуйте, только начал изучать С++ и возник вопрос. Программа заполняет массив случайными числами, N - количество элементов массива. Необходимо проверить его на несколько параметров, проблема с проверкой введенного пользователем числа на целочисленность, проверка на тот случай, если пользователь введет с клавиатуры не целое число, например 2.2. Пытался несколькими способами -

C++
1
2
3
4
5
6
if (typeid(N) != typeid(int)) 
 { 
  cout << "Количество элементов массива должно быть целым числом." << endl; 
  return 1; 
 
 }
или

C++
1
2
3
4
5
6
switch(N)
    {
        case sizeof(N) != 4:
            cout << "введите целое число элементов массива";
        break;
    }
Однако корректно программа не работает, то переменные типа float не проходят проверку, то при вводе подходящего числа не составляется массив(например при вводе 2: вывод "Количество элементов массива должно быть целым числом), не могу найти проблему, помогите пожалуйста.

весь код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream> 
#include <stdlib.h> 
#include <ctime> 
#include <typeinfo> 
 
using namespace std; 
int main() 
{ 
 setlocale(LC_ALL, "Rus"); // для корректного вывода русского языка 
 long N; // количество элементов массива 
 float* pt; // используется для доступа к элементам массива A по адресу, а не по индексу 
 srand(time(NULL)); 
 
 cout << "введите четное количество символов "; 
 
 cin >> N; // ввод числа 
 
 
 
 
 if (typeid(N) != typeid(int)) 
 { 
  cout << "Количество элементов массива должно быть целым числом." << endl; 
  return 1; 
 
 } 
  
 else if (N == 0) 
 { 
  cout << "количество элементов массива не может быть равно нулю \n "; 
  return 1; 
   
 } 
 else if (N < 0) 
 { 
  cout << "количество элементов массива не может быть отрицательным \n "; 
  return 1; 
   
 } 
  
 else if (N % 2 != 0) 
 { 
  cout << "количество элементов массива должно быть четным \n "; 
  return 1; 
   
 } 
 
 float* A = new float[N]; //  оператор new для динамического выделения памяти под массив элементов типа float 
  
 
 cout << "первоначальный массив \n"; 
 
 for (int i = 0; i < N; i++) 
 { 
   
  A[i] = (float)rand() / RAND_MAX; // заполнение массива случайными числами 
  cout <<  *(A + i) << endl; // вывод массива 
 } 
 
 pt = A; // присваивает указателю pt адрес начала массива A 
 
 for (int i = 0; i < N; i+=2) // цикл с шагом 2, для того, чтобы поменять местами каждую пару в массиве 
 { 
  float perv = *(pt + i); // временная переменная, в которую сохраняется значение первого элемента массива из пары 
  *(pt + i) = *(pt + i + 1); // первому элементу из двойки присваивается следующий элемент(меняет местами) 
  *(pt + i + 1) = perv; // присваиваем второму элементу из двойки значение первого 
 } 
 cout << "массив с условием \n"; 
 
 for (int i = 0; i < N; i++) 
 { 
  cout << *(pt + i) << endl; // вывод массива с условием 
 } 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.10.2024, 22:59
Ответы с готовыми решениями:

Проверка на целочисленность
Доброго времени суток, интересует такой нюанс, как сделать проверку на ввод пользователем только целых значений? Т.е. если пользователь...

Написать проверку на целочисленность
Помогите пожалуйста, нужно сделать перед вводом диапазона проверку на целочисленность. Или же чтобы программа генерировала и дробные числа....

Проверка на целочисленность...
Доброе утро ребята!:yes: Проверка на целочисленность вот так работает: using namespace std; int a; a = 15; if ( a%3==0) ...

20
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,766
Записей в блоге: 14
11.10.2024, 09:17
Студворк — интернет-сервис помощи студентам
goodid, я невнимательно прочитал твой вопрос... Ты зря волнуешься. Если переменная описана как int, то она и введется как целая. Совершенно нет необходимости проверять дробную часть.

C++
1
2
3
4
  int n;
 
  std::cin >> n;
  std::cout << n;
Выполни этот код и убедись, что дробная часть просто проигнорируется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2024, 09:17

Работа с файлами. Проверка документа на целочисленность в JAVA
Возможно, я создал тему не там, пардоньте... Помогите решить заново или подправить мой код. Задача звучит так: Выяснить,...

Вычилить множители числа и проверить на целочисленность
Нужна программа, вычиляющая множители числа и проверяющая его на целочисленность, всё готово, но не знаю, как совместить: while True: ...

Доказать целочисленность выражения
Помогите, пожалуйста, с решением задачи. Заранее спасибо. Докажите, что если n – целое число, то ((n)^2!)/ ((n!)^n+1) – целое, а если m...

Написать проверку переменной на целочисленность
Есть цикл for в котором переменная float i с шагом 0.2. как поставить условие, что если число int, т.е if(i=1 || i=2 и тд) то что-то...

Написать программу, проверяющую целочисленность введенной строки с клавиатуры
написать программу проверяющую целочисленность введенной строки с клавиатуры


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru