Перевести программу с 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, чтобы указать, что программа успешно завершилась
- Программа ожидает ввода пользователя, чтобы дать ему возможность завершить программу