Пожалуйста! Помогите написать код для программы с процедурой! Составьте процеду?
Пожалуйста! Помогите написать код для программы с процедурой!
Составьте процеду??у, которая определяет точки, расстояние между которыми максимально и минимально. Координаты точек заданы в массивах X(n), Y(n), n<=20. Использовать составленную процедуру для массивов X1, Y1, вывести номера найденных точек, а также расстояние между ними.
Язык С.
Ответ(ы) на вопрос:
Гость
#include <stdio.h>
#include <math.h>
void minmax(int x1[],int y1[])
{
int i, j, imax, jmax, imin, jmin;
int len=sizeof(x1);
float max = 0;
float min = 1000;
float r;
for ( i = 0; i < len-1; i ++ )
for ( j = i+1; j < len; j ++ )
{
r = sqrt((x1[i]-x1[j])*(x1[i]-x1[j])+(y1[i]-y1[j])*(y1[i]-y1[j]));
if (r>max) { max = r; imax = i; jmax = j;}
if (r<min) { min = r; imin = i; jmin = j;}
}
printf("max = %f точки: %d - %d\n", max, imax+1, jmax+1);
printf("min = %f точки: %d - %d\n", min, imin+1, jmin+1);
}
int main()
{
int n=5;
int x[n], y[n], i;
srand (time(NULL));
for ( i = 0; i < n; i ++ )
{
x[i] = rand() % 20 -10;
y[i] = rand() % 20 -10;
printf ("%4d, %4d ", x[i], y[i]);
printf("\n");
} minmax(x,y); return 0; } Пример: -10, 4 -5, 2 -9, -1 7, 2 7, -3 max = 17.117243 точки: 1 - 4 min = 5.000000 точки: 2 - 3
int n=5;
int x[n], y[n], i;
srand (time(NULL));
for ( i = 0; i < n; i ++ )
{
x[i] = rand() % 20 -10;
y[i] = rand() % 20 -10;
printf ("%4d, %4d ", x[i], y[i]);
printf("\n");
} minmax(x,y); return 0; } Пример: -10, 4 -5, 2 -9, -1 7, 2 7, -3 max = 17.117243 точки: 1 - 4 min = 5.000000 точки: 2 - 3
Не нашли ответ?
Похожие вопросы