Yes, the code is right, but it is not readable, it is very easy to think that it does one thing and does another. Note that the code is the same, but it is simpler and more readable in the compact version and more explicit in the organization of the blocks. Even the spaces make a difference in readability. And good names avoid comments.
Normally, before% w / o% should never be less than 1,% w / o% only makes sense if you have an error in the argument. And even if that comes, check and do not check this way gives the same. If it would be the case it would exist if it were to give invalid argument error.
#include <stdio.h>
int EstaOrdemCrescente(int vetor[], int tamanho) {
for (int i = 1; i < tamanho; i++) if (vetor[i - 1] > vetor[i]) return 0;
return 1;
}
int main() {
printf(EstaOrdemCrescente((int[]){-1, 2, 3, 4, 5}, 5) ? "Esta em ordem crescente\n" : "Nao esta em ordem crescente\n");
printf(EstaOrdemCrescente((int[]){-1, 2, 0, 4, 5}, 5) ? "Esta em ordem crescente\n" : "Nao esta em ordem crescente\n");
printf(EstaOrdemCrescente((int[]){1}, 0) ? "Esta em ordem crescente\n" : "Nao esta em ordem crescente\n");
}
See running on ideone . And no Coding Ground . Also I put it in GitHub for future reference .
#include <stdio.h>
int EstaOrdemCrescente(int vetor[], int tamanho) {
for (int i = 1; i < tamanho; i++) {
if (vetor[i - 1] > vetor[i]) {
return 0;
}
}
return 1;
}
int main() {
printf(EstaOrdemCrescente((int[]){-1, 2, 3, 4, 5}, 5) ? "Esta em ordem crescente\n" : "Nao esta em ordem crescente\n");
printf(EstaOrdemCrescente((int[]){-1, 2, 0, 4, 5}, 5) ? "Esta em ordem crescente\n" : "Nao esta em ordem crescente\n");
printf(EstaOrdemCrescente((int[]){1}, 0) ? "Esta em ordem crescente\n" : "Nao esta em ordem crescente\n");
}