Определить ограничения на вводимые пользователем значения и не допустить ввода неверных значений - C (СИ)
Формулировка задачи:
В общем, выделил жирным то с чем проблема.
А вообще программа работает, но как я понял нужно что бы окно ввода ( cmd.exe ) не закрывалось пока не будут введены правильные значения и не будет выведен ответ, а у меня после ввода пишет что "Введены некорректные значения" и предлагает нажать любую кнопку для закрытия окна.
Определить ограничения на вводимые пользователем значения и не допустить ввода неверных значений (
не продолжать программу пока не будут введены корректные значения
).#include "StdAfx.h"
#include <stdio.h>
#include <math.h>
#include <clocale>
int main(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
float m1, m2, r, F;
float const G = 0.0000000000667384; // гравитационная постоянная
printf("Введите массы тел и расстояние между телами: \n");
scanf("%f %f %f", &m1, &m2, &r);
if ((m1 > 0) && (m2 > 0) && ( r > 0))
{
F = ( G * m1 * m2 ) / ( r * r );
printf("Сила притяжения равна: %f\n", F);
}
else
{
printf ("Введены некорректные значения \n");
}
getchar ();
return 0;
}
Не могу отредактировать название темы, модер выручай
Решение задачи: «Определить ограничения на вводимые пользователем значения и не допустить ввода неверных значений»
textual
Листинг программы
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <locale.h>
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
float m1 = 0, m2 = 0, r = 0, F = 0;
float const G = 0.0000000000667384; // гравитационная постоянная
printf("Введите массы тел и расстояние между телами: \n");
scanf("%f %f %f", &m1, &m2, &r);
fflush(stdin);
if (!((m1 > 0) && (m2 > 0) && ( r > 0)))
{
do
{
printf ("Введены некорректные значения \n");
printf("Введите массы тел и расстояние между телами: \n");
scanf("%f %f %f", &m1, &m2, &r);
fflush(stdin);
}
while (!(m1 > 0 && m2 > 0 && r > 0));
}
F = ( G * m1 * m2 ) / ( r * r );
printf("Сила притяжения равна: %f \n", F);
getchar();
return 0;
}
Объяснение кода листинга программы
- Установка начальных значений переменных m1, m2, r, F и G.
- Вывод сообщения с просьбой ввести массы тел и расстояние между ними.
- Проверка корректности введенных значений. Если они некорректны, то пользователю выводится сообщение об ошибке и запрос на повторный ввод.
- Если значения корректны, то вычисляется сила притяжения F как произведение G на массы тел и расстояние между ними, деленное на квадрат расстояния.
- Выводится значение силы притяжения F.
- Программа завершается.