检查字符串数组的排序:输出与预期不匹配

时间:2015-10-15 09:56:40

标签: c++ arrays sorting

所以我试图创建这个程序来检查单词列表的排序,看它们是按升序还是降序排列。我正在将文件中的单词复制到字符串数组中。我被告知常规比较运算符的功能与字符串相同,就像它们使用int一样。但是,当我运行程序时,它总是输出列表是无序的(即使它是)。我非常感谢能为我提供任何帮助。谢谢!

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;

int checkArraySort(int array_max, string arr[]);

int main(void)
{
const int array_max = 20;
string arr[array_max];
int d;

ifstream myfile_in;
myfile_in.open ("words_in.txt");

string line;

for(int i = 0; i < array_max; i++)
{
    getline(myfile_in, line);
}

d = checkArraySort(array_max, arr);

if(d == -1)
{
    cout << "The array is sorted in descending order!" << endl;
}

if(d == 0)
{
    cout << "The array is not sorted!" << endl;
}

if(d == 1)
{
    cout << "The array is sorted in ascending order!" << endl;
}

myfile_in.close();
return 0;
}

int checkArraySort(int array_max, string arr[])
{   
bool y = false;
int j = 0;

for(int i = 0; i < array_max; i++)
{
    if(arr[i] < arr[i-1])
    {
        j++;
    }

    if(j == (array_max))
    {
        y = true;
        return -1;
    }
}

j = 0;

for(int i = 0; i < array_max; i++)
{

    if(arr[i] > arr[i-1])
    {
        j++;
    }

    if(j == (array_max))
    {
        y = true;
        return 1;
    }
}

if(y = false)
{
    return 0;
}
}

1 个答案:

答案 0 :(得分:1)

if(y = false)

应该是

if(y == false)