Перевести программу с C++\CLI на С с использованием printf - C (СИ) (152680)
Формулировка задачи:
У меня есть программа на С, помогите сделать ее с printf. Спасибо!
#include "stdafx.h" #include "stdio.h" #include "math.h" #include <iostream> #include <string> using namespace System; using std::cout; using std::cin; using std::endl; int main(array<System::String ^> ^args) { int kor[2]; int kon[2]; double d; double temp1; double temp2; double d2; double d3; Console::WriteLine(L"Введите координаты Короля"); for (int i=0; i<2; i++){ cout << "[" << i + 1 << "]" << ": "; cin >> kor[i]; } Console::WriteLine(L"Координаты Короля"); for (int i = 0; i < 2; ++i) { cout << kor[i] << " "; } Console::WriteLine(L"\nВведите координаты Коня"); for (int i=0; i<2; i++){ cout << "[" << i + 1 << "]" << ": "; cin >> kon[i]; } Console::WriteLine(L"Координаты Коня"); for (int i = 0; i < 2; ++i) { cout << kon[i] << " "; } temp1 = kon[0]-kor[0]; temp2 = kon[1]-kor[1]; d = sqrt(pow(temp1,2)+pow(temp2,2)); d2 = sqrt(2.0); d3 = sqrt(5.0); if (d<=d2){ Console::WriteLine(L"Король бьет коня"); } if (d==d3){ Console::WriteLine(L"Конь бьет короля"); } if (d>d2 && d<d3){ Console::WriteLine(L"\nФигуры не угрожают друг другу"); } getchar(); return 0; }
Решение задачи: «Перевести программу с C++\CLI на С с использованием printf»
textual
Листинг программы
#include "math.h" #include <string.h> #include <locale.h> #include <stdio.h> int main(void) { setlocale(LC_ALL, "ru"); int kor[2]; int kon[2]; int i; double d; double temp1; double temp2; double d2; double d3; printf("Введите координаты Короля"); for (i=0; i<2;i++) { printf("[%d]: ", i+1); scanf("%d", &kor[i]); } printf("Координаты Короля"); for (i = 0; i < 2; ++i) { printf("%d ", kor[i]); } printf("\nВведите координаты Коня"); for (i=0; i<2; i++){ printf("[%d]: ", i+1); scanf("%d", &kon[i]); } printf("Координаты Коня"); for (i = 0; i < 2; ++i) { printf("%d ", kon[i]); } temp1 = kon[0]-kor[0]; temp2 = kon[1]-kor[1]; d = sqrt(pow(temp1,2)+pow(temp2,2)); d2 = sqrt(2.0); d3 = sqrt(5.0); if (d<=d2){ printf("Король бьет коня"); } if (d==d3){ printf("Конь бьет короля"); } if (d>d2 && d<d3){ printf("\nФигуры не угрожают друг другу"); } getchar(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливается локальная настройка на русский язык
- Объявляются массивы kor и kon для хранения введенных пользователем координат Короля и Коня соответственно
- Инициализируется переменная i для использования в цикле
- Объявляются переменные d, temp1, temp2, d2, d3 для хранения расстояний между фигурами и значений функций sqrt и pow
- Выводится сообщение с просьбой ввести координаты Короля
- С помощью цикла scanf собирается информация о координатах Короля и сохраняется в массиве kor
- Выводится сообщение с введенными координатами Короля
- С помощью цикла scanf собирается информация о координатах Коня и сохраняется в массиве kon
- Выводится сообщение с введенными координатами Коня
- Вычисляются значения temp1 и temp2 как разность соответствующих координат Короля и Коня
- Вычисляется значение d как квадратный корень из суммы квадратов temp1 и temp2
- Вычисляется значение d2 как квадратный корень из 2
- Вычисляется значение d3 как квадратный корень из 5
- С помощью условного оператора if проверяется, является ли d меньше или равным d2, и выводится соответствующее сообщение
- С помощью условного оператора if проверяется, равно ли d d3, и выводится соответствующее сообщение
- С помощью условного оператора if проверяется, больше ли d d2 и меньше ли d d3, и выводится соответствующее сообщение
- Выводится символ новой строки для перехода на новую строку
- Возвращается 0, чтобы указать, что программа успешно завершилась
- Программа ожидает ввода пользователя, чтобы дать ему возможность завершить программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д