将Algo转换为C++
Convert Algo to C++
MAXIMA(int n, Point P[1 . . . n])
1 for i <-- 1 to n
2 do maximal <-- true
3 for j <-- 1 to n
4 do
5 if (i != j)&(P[i].x <= P[j].x)&(P[i].y <= P[j].y)
6 then maximal <-- false break
7 if maximal
8 then output P[i].x, P[i].y
这就是算法:基本上他们给了我{12, 12},{14, 10},{15, 7},{7, 7},{11, 5},{13, 3},{5, 1},{7, 13},{4,11},{9,10},{2,5},{4,4}
分输出将与行、COL或X、Y相关,因此X和Y的最大值;Y将是结果,或者可以说在x或Y的平均值中不受其他人支配的点,所以我的代码是:
#include<iostream>
#include<conio.h>
using namespace std;
struct Point{
int x;
int y;
};
int main()
{
Point P[12][2] = { {12, 12},{14, 10},{15, 7},{7, 7},{11, 5},{13, 3}{5,1},{7, 13},{4,11},{9,10},{2,5},{4,4} };
bool maxim=true;
for(int i = 0; i < 12; i++)
for(int j = 0; j < 2; j++)
do {
if(i != j && P[i].x <= P[j].x && P[i].y <= P[j].y) {
cout << array[i][j] <<"t" ;
cout<<"n";
maxim=false;
}
} while(maxim=true);
break;
}
}
_getch();
return 0;
}
我的输出与它应该是不一样输出应该是:
(7 13) (12 12) (14 10) (15 7)
正如你在第一点看到的,没有人主宰13
第二(12,12(
第三(14,10(
第4(15,7(
这两段代码的主要区别在于,第一段有点类,第二段没有。
你可以自己写一个。
struct Point {
int x;
int y;
}
(是的,这是一个结构,不是一个类,但让我们尽可能简单(
然后你可以使用数组来存储点,就像你以前做的那样:
Point array[] = { {12, 12},{14, 10},{15, 7},{7, 7},{11, 5},{13, 3},{5, 1},{7, 13},{4,11},{9,10},{2,5},{4,4} };
然后你可以使用与原来几乎相同的循环:
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
if(i != j && P[i].x <= P[j].x && P[i].y <= P[j].y)
{
...
}
}
}
你必须自己制定细节,但我希望它能为你指明正确的方向。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 了解 GLM- openGL 中的相机转换
- 将无符号char*转换为std::istream*C++