我知道三元条件需要表达式才能起作用,但是我想知道对于这样的事情是否存在聪明的解决方法:
#include <stdbool.h>
bool in_asc_order(const int *arr, size_t arr_size)
{
int count = 0;
bool result = false;
while(count < arr_size - 1)
{
(arr[count] <= arr[count + 1])? result = true : (return false);
count++;
}
return result;
}
与其编写类似这样的内容:
#include <stdbool.h>
bool in_asc_order(const int *arr, size_t arr_size)
{
int count = 0;
bool result = false;
while(count < arr_size - 1)
{
if(arr[count] <= arr[count + 1])
{
result = true;
}
else
{
return false;
}
count++;
}
return result;
}
我热衷于使用此条件。任何帮助都会很棒。
答案 0 :(得分:4)
我不会写那些东西。怎么样?
bool in_asc_order(const int *arr, size_t arr_size)
{
if (arr_size == 0)
return true;
for (size_t i = 0; i < arr_size - 1; i++)
if (arr[i] > arr[i + 1])
return false;
return true;
}