我的参数是否排序
Are my parameters sorted?
我尝试检查我的参数是否已排序。我有代码,但它不起作用...你能告诉我我应该解决什么吗?我认为问题出在第一个循环中,因为参数列表末尾的结果可以是 0。我不知道我应该如何更改它,我尝试这样做:当atof(argv[i]) <= atof(argv[i + 1])
不正确时,程序应该转到下一个循环......这是我的第一个C++计划。
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main(int argc, char *argv[])
{
int result;
for (int i = 1; i < argc - 1; i++) {
if (atof(argv[i]) <= atof(argv[i + 1])) {
result = 0;
}
}
if (result == 0) {
cout << "Sorted!" << endl;
system("pause");
}
for (int i = 1; i < argc - 1; i++) {
if (atof(argv[i]) >= atof(argv[i + 1])) {
result = 2;
}
}
if (result == 2) {
cout << "Sorted!" << endl;
system("pause");
}
else {
cout << "Bad." << endl;
system("pause");
}
system("pause");
return 0;
}
您必须
通过将int result;
更改为int result = -1;
来初始化result
。
如果需要,请将-1
替换为所需的初始值。
再考虑一下第一个循环。您的逻辑说"如果任何数字小于下一个数字,请将result
设置为 0"。因此,如果您有像 5 3 4 2 1
这样的列表,那么当比较 3 和 4 时,result
将设置为 0。由于剩余的数字正在减少,因此result
的值在循环的其余部分不会改变。
您可能需要考虑的一种解决方案是假设列表已排序,然后如果遇到未按排序顺序的数字,请将 result 设置为 -1 并脱离循环。
相关文章:
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 是否有任何C++功能可以对地图进行排序?
- MOVNTI 存储是否相对于由同一线程创建的其他 MOVNTI 存储重新排序?
- 选择排序时交换函数调用的数量和完成的交换次数是否相同?
- 是否可以在调用链接器时强制 CMake 重新排序参数?
- 检查向量是否使用除法和阻抗算法进行排序
- 是否使用cv::Point2f类型重载std::排序
- "<"满足严格的弱排序是否意味着不需要"=="定义?
- 在这种单例实施中,是否可以对两个商店重新排序?
- 如何检查队列是否使用 STL 排序
- 确定数组是否可以旋转 3 个连续的数组元素进行排序?
- 是否有用于排序和查找 c++ 中是否已存在的值的函数?
- 我的选择排序代码是否存在导致它跳过数组中的元素的问题?
- 是否可以在条件之前对加载或存储进行重新排序?
- 查看数字是否包含在未排序的双数字间隔内的最有效方法?
- 构造函数的初始值设定项列表中的函数调用是否按顺序排序?
- 此并发快速排序实现是否正确?
- 是否存在用于按以下方式对两个范围进行排序和分区的标准算法?
- 在独立类中对公共非虚拟方法重新排序是否会破坏 ABI
- STL排序是否支持UTF8 ?