【问题标题】:Sorting string with if-else [closed]使用 if-else 对字符串进行排序 [关闭]
【发布时间】:2021-02-16 21:23:20
【问题描述】:

我的讲师要求我们编写一个程序,使用 only if-else 按字母顺序对三个字符串进行排序(没有排序算法,使用数组等等)。我对 C++ 编程相当陌生,但我想出了这个程序,并且想知道是否有任何方法可以在仅使用 if-else 的情况下提高效率?任何帮助或建议将不胜感激。谢谢!

#include <iostream>
using namespace std;

int main()
{
    string word1, word2, word3;
    string temp;
    
    cout << "Enter three words separated by a space: ";
    cin >> word1 >> word2 >> word3; 
    
    if (word1 > word2 && word1 > word3 && word3 > word2) 
    {
        temp = word1; 
        word1 = word2; 
        word2 = word3; 
        word3 = temp; 
    } 
        
        else if (word1 > word2 && word1 > word3 && word2 > word3) 
        {
            temp = word1; 
            word1 = word3;
            word3 = temp; 
        }
        
            else if (word2 > word1 && word2 > word3 && word1 > word3)
            {
                temp = word2; 
                word1 = word3; 
                word2 = word1; 
                word3 = temp;
            }
            
            else if (word2 > word1 && word2 > word3 && word3 > word1)
            {
                temp = word2; 
                word2 = word3; 
                word3 = temp; 
            }
            
                else if (word3 > word1 && word3 > word2 && word1 > word2)
                {
                    temp = word1; 
                    word1 = word2; 
                    word2 = temp; 
                }

    
    cout << "The correct sort is " << word1 << ", " << word2 << ", " << word3 << endl;
    
    return 0;
}

【问题讨论】:

  • 我投票结束这个问题,因为这是一个代码审查请求,因此应该在the Code Review SE

标签: c++ string sorting if-statement


【解决方案1】:

实际上,您不会让这更高效。从理论上讲,您可以通过执行类似的操作来节省一些测试

if(word1 > word2)
{
  // ...
}
else
{
  // ...
}

但实际上编译器优化器会为您解决这个问题。

您可能想要做一些事情以使其更具可读性,例如修复缩进或使用/编写自己的 std::swap 版本,但这是 Code Review 的问题,而不是 Stack Overflow .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 2014-05-05
    • 2021-09-08
    相关资源
    最近更新 更多