Перевести программу с C++\CLI на С с использованием printf - C (СИ) (74071)
Формулировка задачи:
У меня есть программа на С, помогите сделать ее с printf. Спасибо!
// romb_okruzh.cpp: главный файл проекта. #include "stdafx.h" #include "stdio.h" #include "math.h" using namespace System; int main(array<System::String ^> ^args) { String^ d1; String^ d2; String^ r; double diag1; double diag2; double rad; double storona; double max_ra_romb; Console::WriteLine(L"Введите первую диагональ ромба"); d1 = Console::ReadLine(); diag1 = System::Convert::ToDouble(d1); Console::WriteLine(L"Введите вторую диагональ ромба"); d2 = Console::ReadLine(); diag2 = System::Convert::ToDouble(d2); Console::WriteLine(L"Введите радиус окружности"); r = Console::ReadLine(); rad = System::Convert::ToDouble(r); storona = sqrt (pow(diag1,2)/4 + pow(diag2,2)/4); max_ra_romb = (diag1*diag2)/(4*storona); if (max_ra_romb >= rad){ Console::WriteLine(L"Окружность можно вписать в ромб"); } if (max_ra_romb < rad){ Console::WriteLine(L"Окружность нельзя вписать в ромб"); } getchar(); return 0; }
Решение задачи: «Перевести программу с C++\CLI на С с использованием printf»
textual
Листинг программы
//#include "stdafx.h" #include <stdio.h> #include <math.h> #include <string.h> #include <locale.h> int main() { setlocale(0, ""); char d1[10]; char d2[10]; char r [10]; double diag1; double diag2; double rad; double storona; double max_ra_romb; printf("Введите первую диагональ ромба "); scanf("%s%*c", d1); sscanf(d1, "%lf", &diag1); printf("Введите вторую диагональ ромба "); scanf("%s%*c", d2); sscanf(d2, "%lf", &diag2); printf("Введите радиус окружности "); scanf("%s%*c", r); sscanf(r, "%lf", &rad); storona = sqrt (pow(diag1,2)/4 + pow(diag2,2)/4); max_ra_romb = (diag1*diag2)/(4*storona); if (max_ra_romb >= rad) printf("Окружность можно вписать в ромб\n"); if (max_ra_romb < rad) printf("Окружность нельзя вписать в ромб\n"); getchar(); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
- stdio.h - для работы с функциями ввода-вывода;
- math.h - для работы с математическими функциями;
- string.h - для работы со строками;
- locale.h - для установки локали.
- Установка локали на ``.
- Объявление переменных:
- char d1[10] - для хранения первой диагонали ромба;
- char d2[10] - для хранения второй диагонали ромба;
- char r[10] - для хранения радиуса окружности;
- double diag1 - для хранения значения первой диагонали ромба;
- double diag2 - для хранения значения второй диагонали ромба;
- double rad - для хранения значения радиуса окружности;
- double storona - для хранения значения стороны прямоугольника;
- double max_ra_romb - для хранения максимального значения радиуса окружности, которую можно вписать в ромб.
- Вывод сообщения и запрос на ввод первой диагонали ромба.
- Считывание значения первой диагонали ромба с помощью функции scanf и перевод его в тип double с помощью функции sscanf.
- Вывод сообщения и запрос на ввод второй диагонали ромба.
- Считывание значения второй диагонали ромба с помощью функции scanf и перевод его в тип double с помощью функции sscanf.
- Вывод сообщения и запрос на ввод радиуса окружности.
- Считывание значения радиуса окружности с помощью функции scanf и перевод его в тип double с помощью функции sscanf.
- Расчет значения стороны прямоугольника с помощью формулы: storona = sqrt (pow(diag1,2)/4 + pow(diag2,2)/4).
- Расчет максимального значения радиуса окружности, которую можно вписать в ромб, с помощью формулы: max_ra_romb = (diag1diag2)/(4storona).
- Проверка значения переменной max_ra_romb и вывод соответствующего сообщения с помощью условного оператора if.
- Проверка значения переменной max_ra_romb и вывод соответствующего сообщения с помощью условного оператора if.
- Вывод символа новой строки с помощью функции getchar.
- Возврат значения 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д