Перевести программу с 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек:
    • stdio.h - для работы с функциями ввода-вывода;
    • math.h - для работы с математическими функциями;
    • string.h - для работы со строками;
    • locale.h - для установки локали.
  2. Установка локали на ``.
  3. Объявление переменных:
    • char d1[10] - для хранения первой диагонали ромба;
    • char d2[10] - для хранения второй диагонали ромба;
    • char r[10] - для хранения радиуса окружности;
    • double diag1 - для хранения значения первой диагонали ромба;
    • double diag2 - для хранения значения второй диагонали ромба;
    • double rad - для хранения значения радиуса окружности;
    • double storona - для хранения значения стороны прямоугольника;
    • double max_ra_romb - для хранения максимального значения радиуса окружности, которую можно вписать в ромб.
  4. Вывод сообщения и запрос на ввод первой диагонали ромба.
  5. Считывание значения первой диагонали ромба с помощью функции scanf и перевод его в тип double с помощью функции sscanf.
  6. Вывод сообщения и запрос на ввод второй диагонали ромба.
  7. Считывание значения второй диагонали ромба с помощью функции scanf и перевод его в тип double с помощью функции sscanf.
  8. Вывод сообщения и запрос на ввод радиуса окружности.
  9. Считывание значения радиуса окружности с помощью функции scanf и перевод его в тип double с помощью функции sscanf.
  10. Расчет значения стороны прямоугольника с помощью формулы: storona = sqrt (pow(diag1,2)/4 + pow(diag2,2)/4).
  11. Расчет максимального значения радиуса окружности, которую можно вписать в ромб, с помощью формулы: max_ra_romb = (diag1diag2)/(4storona).
  12. Проверка значения переменной max_ra_romb и вывод соответствующего сообщения с помощью условного оператора if.
  13. Проверка значения переменной max_ra_romb и вывод соответствующего сообщения с помощью условного оператора if.
  14. Вывод символа новой строки с помощью функции getchar.
  15. Возврат значения 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5