一个数组float m[5]={1.2,34.4,0.0,-3.4,-5.8}; 这是无序数组,按照有小到大进行输出,但是对m不能有任何修改 5个点(x,y), 具体值自己随意赋,计算出每个点到其他点的距离
时间: 2024-02-17 14:00:55 浏览: 84
对于第一个问题,可以使用选择排序的方法,不对原数组进行修改,新建一个有序数组,将原数组的元素按照从小到大的顺序插入到新数组中即可。具体代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
float m[5] = {1.2, 34.4, 0.0, -3.4, -5.8};
float sorted_m[5] = {m[0], m[1], m[2], m[3], m[4]}; // 新建一个有序数组,初始值与原数组相同
// 选择排序,将原数组的元素按照从小到大的顺序插入到新数组中
for (int i = 0; i < 4; i++) {
int min_idx = i;
for (int j = i + 1; j < 5; j++) {
if (sorted_m[j] < sorted_m[min_idx]) {
min_idx = j;
}
}
float temp = sorted_m[i];
sorted_m[i] = sorted_m[min_idx];
sorted_m[min_idx] = temp;
}
// 输出有序数组
for (int i = 0; i < 5; i++) {
cout << sorted_m[i] << " ";
}
cout << endl;
return 0;
}
```
对于第二个问题,可以使用勾股定理来计算两点之间的距离,具体代码如下:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float points[5][2] = {{0, 0}, {1, 1}, {2, 2}, {3, 4}, {5, 6}}; // 5个点的坐标
// 计算每个点到其他点的距离
for (int i = 0; i < 5; i++) {
for (int j = i + 1; j < 5; j++) {
float distance = sqrt(pow(points[i][0] - points[j][0], 2) + pow(points[i][1] - points[j][1], 2));
cout << "Distance between point " << i << " and point " << j << " is " << distance << endl;
}
}
return 0;
}
```
阅读全文