Сделать защиту от ввода букв и символов - C (СИ)
Формулировка задачи:
Здравствуйте! Помогите, пожалуйста, сделать защиту от ввода лишних символов и букв в программе. Важно, чтобы вводились только числа.
Заранее спасибо!
#include <conio.h> #include <stdio.h> #include <locale.h> void main() { double Rsum,R1,R2,R3; setlocale(LC_ALL, "rus"); printf("Введите R1, R2 и R3 для параллельного соединения: "); scanf("%d", &R1); scanf("%d", &R2); scanf("%d", &R3); if ((R1>=0)&&(R2>=0)&&(R3>=0)) { Rsum=1/(1/R1+1/R2+1/R3); printf("Сопротивление соединения равно: ", Rsum); } if ((R1<0)||(R2<0)||(R3<0)) { Rsum==0; printf("ОШИБКА: Отрицательных значений быть не может!"); } //Рассчёт сопротивления соединения для последовательного соединения printf("\n Введите R1, R2 и R3 для последовательного соединения: "); scanf("%d", &R1); scanf("%d", &R2); scanf("%d", &R3); if ((R1>=0)&&(R2>=0)&&(R3>=0)) { Rsum=R1+R2+R3; printf("Сопротивление соединения равно: ", Rsum); } if ((R1<0)||(R2<0)||(R3<0)) { Rsum=0; printf("ОШИБКА: Отрицательных значений быть не может!"); } getch(); system("pause"); }
Решение задачи: «Сделать защиту от ввода букв и символов»
textual
Листинг программы
#include <conio.h> #include <stdio.h> #include <locale.h> void main() { float Rsum, R1,R2,R3; setlocale(LC_ALL, "rus"); do { fflush(stdin); printf("Введите R1, R2 и R3 для параллельного соединения: "); scanf("%f",&R1); scanf("%f",&R2); scanf("%f",&R3); if((R1<0)||(R2<0)||(R3<0)) printf("\n\aОШИБКА!\n"); }while ((R1<0)||(R2<0)||(R3<0)); Rsum=1/(1/R1+1/R2+1/R3); printf("Сопротивление параллельного соединения равно: %.4f", Rsum); do { fflush(stdin); printf("\nВведите R1, R2 и R3 для последовательного соединения: "); scanf("%f",&R1); scanf("%f",&R2); scanf("%f",&R3); if((R1<0)||(R2<0)||(R3<0)) printf("\n\aОШИБКА!\n"); }while ((R1<0)||(R2<0)||(R3<0)); Rsum=R1+R2+R3; printf("Сопротивление последовательного соединения равно: %.f", Rsum); getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с консолью и вводом-выводом данных
- Объявление переменных типа float для хранения значений сопротивлений R1, R2, R3 и Rsum
- Установка русской локали для работы с консолью
- Использование цикла do-while для повторного запроса ввода значений, если они отрицательные
- Проверка значений R1, R2 и R3 на отрицательность перед выполнением расчетов
- Расчет сопротивления параллельного соединения по формуле Rsum=1/(1/R1+1/R2+1/R3)
- Вывод результата расчетов на экран
- Использование цикла do-while для повторного запроса ввода значений, если они отрицательные
- Проверка значений R1, R2 и R3 на отрицательность перед выполнением расчетов
- Расчет сопротивления последовательного соединения по формуле Rsum=R1+R2+R3
- Вывод результата расчетов на экран
- Использование функции getch() для приостановки выполнения программы и ожидания нажатия клавиши
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д