M
MariannaSec
Здравствуйте, проблема следующая.
Необходимо написать калькулятор на С, операции банальные +,-,* и /
есть два числа типа float. Необходимо произвести проверку правильности ввода чисел
(не введен ли случайно буква или пр. символы)
пробовала работать с результатом функции scanf(), и если он равен 0, обрабатывать ошибку, но
если ввести за места числа, например, "2в", то число "2" программа проглотит, а букву "в" будет использовать
в качестве результата следующего ввода.
Вот пример кода для операции сложения.
[codebox] do
{
printf("Enter the 1st number of the SUM (for example 3.12):\n");
err = scanf("%f", &a);//reading the fisrt
if (err==0)
{
printf("\nYou are entering not a float number");
rewind(stdin);
}
}
while (err == 0);
do
{
printf("Enter the number you want to ADD (for example 3.12):\n");
err=scanf("%f",&;//reading the second number
if (err==0)
{
printf("\nYou are entering not a float number");
rewind(stdin);
}
}
while (err == 0);
result = a + b;//making ADDITION
printf("\n The result of ADDITION operation is:\n %f", result); //output the result
[/codebox]
Также существует еще одна проблема:
если я ввожу числа 12.1212 и 12.1214 складываю, то получается странный результат типа 24.24259, хотя должен быть 24.2426
Пожалуйста, откликнитесь, буду очень признательна!!!!!
Необходимо написать калькулятор на С, операции банальные +,-,* и /
есть два числа типа float. Необходимо произвести проверку правильности ввода чисел
(не введен ли случайно буква или пр. символы)
пробовала работать с результатом функции scanf(), и если он равен 0, обрабатывать ошибку, но
если ввести за места числа, например, "2в", то число "2" программа проглотит, а букву "в" будет использовать
в качестве результата следующего ввода.
Вот пример кода для операции сложения.
[codebox] do
{
printf("Enter the 1st number of the SUM (for example 3.12):\n");
err = scanf("%f", &a);//reading the fisrt
if (err==0)
{
printf("\nYou are entering not a float number");
rewind(stdin);
}
}
while (err == 0);
do
{
printf("Enter the number you want to ADD (for example 3.12):\n");
err=scanf("%f",&;//reading the second number
if (err==0)
{
printf("\nYou are entering not a float number");
rewind(stdin);
}
}
while (err == 0);
result = a + b;//making ADDITION
printf("\n The result of ADDITION operation is:\n %f", result); //output the result
[/codebox]
Также существует еще одна проблема:
если я ввожу числа 12.1212 и 12.1214 складываю, то получается странный результат типа 24.24259, хотя должен быть 24.2426
Пожалуйста, откликнитесь, буду очень признательна!!!!!