Здравствуйте. У меня задание написать реализацию перегруженных функций на С++:
bool func(int* arr, int length);
bool func(char* str);
Функция func проверяет расположены ли элементы массива по возрастанию.
Вот мой код:
#include <iostream>
using namespace std;
bool func(int* arr, int length)
{
bool isGreater = true;
for (int i = 0; i < length - 1; i++)
{
if (arr[i] > arr[i + 1])
{
isGreater = false;
break;
}
}
return isGreater;
}
bool func(char* str)
{
register int len = strlen(str);
bool isGreater = true;
for (int i = 0; i < len - 1; i++)
{
if (str[i] > str[i + 1])
{
isGreater = false;
break;
}
}
return isGreater;
}
int main()
{
setlocale(LC_ALL, "Russian");
bool res1, res2;
static int arr[5] = { 1, 2, 3, 4, 5 };
char str[] = "ABCDE";
res1 = func(arr, 5);
res2 = func(str);
if (res1 = true)
cout << "'Элементы первого массива расположены по возрастанию.";
else
cout << "Элементы первого массива не расположены по возрастанию.";
if (res2 = true)
cout << "\n\nЭлементы второго массива расположены по возрастанию.";
else
cout << "\n\nЭлементы второго массива расположены по возрастанию.";
return 0;
}
У меня проблема, что, даже если я поменяю массив, допустим,
static int arr[5] = { 1, 2, 3, 4, 5 }; на
static int arr[5] = { 5, 4, 3, 2, 1 };, то выдает результат, что массив возрастает, хотя это не так. Также и со вторым символьным массивом.
Укажите, пожалуйста, на мою ошибку, а то я не понимаю что не так.