私は、C++ をよく理解するために Alex Alllain の本を読んでいます。私はすでにいくつかの基本を知っていましたが、いつものように配列とソート アルゴリズムで行き詰まってしまいました。とにかく、彼が提示した問題の 1 つは、配列がソートされているかどうかを確認することでした。そうでない場合は、並べ替えます...コードは次のとおりです。
#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;
}
条件をチェックするときに、ポインターと integerm の比較に関する 2 つのエラーが発生します。どんな助けでも大歓迎です!編集: 私が得ているエラーは次のとおりです: C:\Code Block Projects\Alex Alllains Book\Chapter 1\main.cpp|84|エラー: ISO C++ はポインターと整数の比較を禁止しています [-fpermissive]|
また、配列がソートされているかどうかを確認する方法はありますか? お願いします?:(