我一直在关注 Alex Alllain 的书,以便对 C++ 有一个很好的理解。我已经了解了一些基础知识,但是我像往常一样在数组和排序算法上遇到了困难。无论如何,他提出的问题之一是检查数组是否已排序。如果不是,请对其进行排序...这是代码:
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
void swap(int array[], int firstindex, int secondindex);
int findsmallel(int array[], int size, int index)
{
int indexofsmall=index;
for(int i=index+1; i<size; i++)
{
if(array[i]<array[indexofsmall])
{
indexofsmall=i;
}
}
return indexofsmall;
}
int findhigh(int array[], int size, int index)
{
int indexofhigh=index;
for(int i=index+1; i<size; i++)
{
if(array[i]>array[indexofhigh])
{
indexofhigh=i;
}
}
return indexofhigh;
}
void sortlow(int array[], int size)
{
for (int i=0; i<size; i++)
{
int index=findsmallel(array, size, i);
swap(array, index, i);
}
}
void sorthigh(int array[], int size)
{
for (int i=0; i<size; i++)
{
int index=findhigh(array, size, i);
swap(array, index, i);
}
}
void swap(int array[], int firstindex, int secondindex)
{
int temp=array[firstindex];
array[firstindex]=array[secondindex];
array[secondindex]=temp;
}
void displayarray(int array[], int size)
{
cout<<"{ ";
for(int i=0; i<size;i++)
{
if(i!=0)
{
cout<<", ";
}
cout<<array[i];
}
cout<<" }";
}
int main()
{
int inputedarray[5];
cin>>inputedarray[];
if(inputedarray[4] != sortlow || inputedarray[4] != sorthigh)
{
sortlow(inputedarray, 5);
displayarray(inputedarray, 5);
}
else
cout<<"Array is already sorted."<<endl;
return 0;
}
检查条件时出现两个关于指针和整数比较的错误。任何帮助将不胜感激!编辑:我得到的错误是: C:\Code Block Projects\Alex Alllains Book\Chapter 1\main.cpp|84|error: ISO C++ forbids comparison between pointer and integer [-fpermissive]|
有什么方法可以检查数组是否已排序?请?:(