Связь между собой 2-х человек с помощью 4 радиостанций: дополнить программу для любого количества радиостанций - C (СИ)
Формулировка задачи:
Добрый вечер.
Программа считает возможность связи между собой 2-х человек с помощью 4 радиостанций. А надо 2 человека и количество радиостанций любое, какое введешь. Уже как месяц парюсь, и не получается никак. Могу разное количество станций задать, но фиксированно.
#include <conio.h> #include <iostream.h> #include <math.h> struct point //структура координаты { float x; float y; }; struct stanc //структура станции { point koor; int daln; }; struct stanc m[4]; //массив из 4 станций stanc ab1, ab2; //2 абонента float rasst(a, b) //функция нахождения расстояния между координатами point a, b; { float res = sqrt(pow((a.x-b.x),2)+pow((a.y-b.y),2)); return res; } int main() { clrscr(); cout<<"---Vvedite dannie po stanciyam, dalnost ne dolgna previshat 50 km:\n"; for (int i = 1; i <= 4; i++) //ввод информации по станциям { cout<<"Stanciya N"<<i<<":\n"; cout<<"Koordinata X: "; cin>>m[i].koor.x; cout<<"Koordinata Y: "; cin>>m[i].koor.y; do { cout<<"Dalnost: "; cin>>m[i].daln; } while (m[i].daln < 1 || m[i].daln > 50); } cout<<"---Vvedite dannie po abonentam:\n"; cout<<"Abonent 1:\n"; //ввод информации по абоненту 1 cout<<"Koordinata X: "; cin>>ab1.koor.x; cout<<"Koordinata Y: "; cin>>ab1.koor.y; do { cout<<"Dalnost: "; cin>>ab1.daln; } while (ab1.daln < 1 || ab1.daln > 50); cout<<"Abonent 2:\n"; //ввод информации по абоненту 2 cout<<"Koordinata X: "; cin>>ab2.koor.x; cout<<"Koordinata Y: "; cin>>ab2.koor.y; do { cout<<"Dalnost: "; cin>>ab2.daln; } while (ab2.daln < 1 || ab2.daln > 50); if (rasst(ab1.koor, ab2.koor) <= ab1.daln && rasst(ab1.koor, ab2.koor) <= ab2.daln) //проверка возможности связи cout<<"Svyas megdy abonentami vozmogna!\n"; else cout<<"Svyas megdy abonentami ne vozmogna!\n"; int min = 50; int k = 1; for (int i = 1; i <= 4; i++) //определение ближайшей к абоненту 1 станции if (rasst(ab1.koor, m[i].koor) < min) { min = rasst(ab1.koor, m[i].koor); k = i; } cout<<"Bligayshaya k abonenty 1 stancya N"<<k<<"\n"; min = 50; k = 1; for (int i = 1; i <= 4; i++) //определение ближайшей к абоненту 2 станции if (rasst(ab2.koor, m[i].koor) < min) { min = rasst(ab2.koor, m[i].koor); k = i; } cout<<"Bligayshaya k abonenty 2 stancya N"<<k<<"\n"; cout<<"Nazhmite lyubuyu klavishu dlya vihoda..."; getch(); }
Решение задачи: «Связь между собой 2-х человек с помощью 4 радиостанций: дополнить программу для любого количества радиостанций»
textual
Листинг программы
struct stanc //структура станции { point koor; int daln; int stations[4]; int subscribers[2]; };
Объяснение кода листинга программы
- Структура
stanc
представляет собой станцию и содержит следующие поля:- koor (координаты станции)
- daln (количество абонентов на станции)
- stations[4] (массив, представляющий собой список радиостанций, связанных с данной станцией)
- subscribers[2] (массив, представляющий собой список абонентов на станции)
- Необходимо дополнить программу для работы с любым количеством радиостанций.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д