#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char num[50] = {'\0'};
int myInt;
short flagFloat, flagInt;
float myFloat;
do
{
system("cls");
printf("\n Input number: ");
gets(num);
flagFloat = 0; flagInt = 0;
for (int n = 0; num[n] != '\0'; n++)
{
if (num[n] == '.')
{
if (atof(num) != 0)
{
myFloat = (float) atof(num);
printf("\n Float = %f", myFloat);
flagFloat = 1;
break;
}
else if (num[0] == '.' || num[1] == '.')
{
for (int n = 2; n != '\0'; n++)
{
if (num[n] == '0') continue;
else if (num[n] == '\0')
{
myFloat = 0.0f;
printf("\n Float = %f", myFloat);
flagFloat = 1;
break;
}
else break;
}
}
}
if (myFloat == 0.0f) break;
}
if (!flagFloat)
{
for (int n = 0; num[n] != '\0'; n++)
{
if (num[n] >= '0' && num[n] <= '9' || num[0] == '-') continue;
else
{
num[0] = 'a';
break;
}
}
if (num[0] == '0' && num[1] == '\0')
{
myInt = 0;
printf("\n Integer = %d", myInt);
flagInt = 1;
}
else if (atoi(num) != 0)
{
const char * temp = (const char *) num;
if (strcmp(temp, "-2147483648") == 0)
{
myInt = -2147483648;
printf("\n Integer = %d", myInt);
flagInt = 1;
}
else if (strcmp(temp, "2147483647") == 0)
{
myInt = 2147483647;
printf("\n Integer = %d", myInt);
flagInt = 1;
}
else
{
myInt = atoi(num);
if (myInt == -2147483648 || myInt == 2147483647) num[0] = 'a';
else
{
printf("\n Integer = %d", myInt);
flagInt = 1;
}
}
}
}
if (!flagFloat && !flagInt) printf("\n Not number! \a");
getch();
}
while (1);
}
Другие языки программирования и технологии
Программа должна определить тип введённых данных (int или float) Программа должна быть написана на С
считать число как строку из цифр. Определить если ли там точка. перевести строку в инт или флоат
Обработка исключений (try, catch). Приводим введенное значение к float, если возникло исключение, значит искомый тип - int, если нет - float
Похожие вопросы
- Что имеется ввиду под 4 байтами у типа данных int?(С++)
- Вес может ли быть дробным числом? Какой тип данных использовать для этого int или float или double ?
- C++ Про выбор типа данных. Int, char и т. д.
- C#. Как сделать, чтобы программа проверяла тип введённой переменной?
- Написать программу в VBA:определить во введенном тексте количество слов,начинающиеся с заданной буквы.
- Напишите программу для pascal, пожалуйста. Введена дата, определить дату следующего воскресенья.
- Задача 4. Комбинированный тип данных – записиСоставить программу, в которой разнотипные данные, обрабатываемые паралл
- [C++] Программа крашится если тип данных LPSTR
- 1. Найти все совершенные числа2. Определить во введенном числе кол-во нечетных чисел и среднее арифметическое четных.
- Как программа криптографически может сохранить свои данные?