Informatică, întrebare adresată de alexandru7239, 8 ani în urmă

Pe o suprafață plană sunt mai multe puncte, date prin coordonatele lor.
Elaborați un program prin intermediul căruia se vor sorta crescător în dependență de
distanța acestora de la centru axei de coordonate a sistemului cartezian.
Date de intrare. Fişierul puncte.in, care pe prima linie conține numărul de puncte
din plan, iar pe următoarele linii sunt scrise coordonatele punctelor.
Date de ieşire. La ecran se va afişa punctele sortate, fiecare coordonată de punct
fiind urmată de distanța acestuia de la centru.
ÎN C++ VA ROG

Răspunsuri la întrebare

Răspuns de lucaciucandrei
1

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

int main() {

int n;

float x, y, v[1001], p[2][1001];

ifstream f("puncte.in");

f>>n;

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

f>>x>>y;

p[1][i]=x;

p[2][i]=y;

v[i]=sqrt(x*x-y*y);

}

f.close();

for (int i=1; i<=n-1; i++) {

for (int j=i+1; j<=n; j++) {

if (v[i]>v[j]) {

swap(p[1][i], p[1][j]);

swap(p[2][i], p[2][j]);

}

}

}

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

cout<<p[1][i]<<' '<<p[2][i]<<endl;

}

return 0;

}


lucaciucandrei: pai boss asta cere problema, sa afisezi punctele sortate in functie de distantele lor
alexandru7239: care trebuie sa fie urmat de distanța punctelor de la centru
lucaciucandrei: aaa ma scuzi
lucaciucandrei: pai dupa coordonatele alea il afisezi si pe v[i]
lucaciucandrei: cout<
lucaciucandrei: gen asa
lucaciucandrei: cout p[1][i]<<' '<
lucaciucandrei: cout p[1][i] ' ' p[2][i] ' ' v[i] endl;
alexandru7239: ok sefu mersi de straduinta
lucaciucandrei: o coroana m-ar ajuta ft mult ms
Alte întrebări interesante