Предмет: Информатика, автор: zentex

С клавиатуры ввести натуральное число n и вещественные числа х1, у1,... хi,уi,. Рассматривая пары хi, и уi, как координаты точек на плоскости, определить радиус наименьшего круга (с центром в начале координат), внутрь которого попадают все эти точки. Вычисление расстояния между двумя точками реализовать в виде функции. Результат вывести в файл оut.txt.

переделайте пожалуйста с паскаля на C(СИ)

uses crt;
var
i,n:integer;
x,y,min,t:real;
begin
clrscr;
write('Введите n = ');
readln(n);
min:=0;
for i:=1 to n do
begin
write ('Введите x[',i,'] = ');
readln(x);
write ('Введите y[',i,'] = ');
readln(y);
t:=sqrt(x*x+y*y);
if t>min thenmin:=t;
end;
write('радиус = ',min:0:2);
readkey;
end.


zentex: можно с тобой связаться?

Ответы

Автор ответа: Koljisto
1

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

typedef struct pair {

   double* x;

   double* y;

} pair;

pair *input_arrays(pair *ptr, double* arr_x, double* arr_y, int n) {

for (int i = 0; i < n; i++) {

 printf("Введите %d элемент в массиве X\n", i);

 scanf("%lf", &arr_x[i]);

 printf("Введите %d элемент в массиве Y\n", i);

 scanf("%lf", &arr_y[i]);

   ptr-> x = arr_x;

   ptr-> y = arr_y;

}

return ptr;

}

void print_array(float* arr, int n) {

 for(int i = 0; i< n; i++){

   printf("%f", arr[i]);

 }

}

double find_minimum_radius(double* arr_x, double* arr_y, int n) {

 double temp;

double min_radius = 0;

 for (int i = 0; i < n; i++) {

 temp = sqrt(pow(arr_x[i], 2) + pow(arr_y[i], 2));

 if (temp > min_radius) {

  min_radius = temp;

 }

}

return min_radius;

}

int main() {

 pair pair_arrx_and_arry = {0,0};

 int n;

 double min_radius = 0;

 printf("Введите n: ");

 scanf("%d", &n);

 double* arr_x = malloc(n * sizeof(int));

 double* arr_y = malloc(n * sizeof(int));

 input_arrays(&pair_arrx_and_arry, arr_x,arr_y, n);

 min_radius = find_minimum_radius(arr_x, arr_y, n);

 printf("Минимальный радиус равен: %f", min_radius);

 // FILE *out_file = fopen("output", "w");

 // if (out_file == NULL) {  

 //     printf("Error! Could not open file\n");

 //     exit(-1);

 // }

 // fprintf(out_file, "Минимальный радиус равен: %f\n", min_radius);

 return 0;

}


zentex: можно как-то связаться с тобой?
Koljisto: Смотря для чего
Koljisto: Класс
Koljisto: Я не могу свою почту даже написать)
zentex: напиши как в вк подписан
zentex: или айли
zentex: айди
Koljisto: Koljisto#0001
Koljisto: Discord
Похожие вопросы
Предмет: Математика, автор: filipsmorozs