Bem-vindo ao Sistersinspirit.ca, a melhor plataforma de perguntas e respostas para obter soluções rápidas e precisas para todas as suas dúvidas. Obtenha soluções rápidas e confiáveis para suas perguntas de uma comunidade de especialistas experientes em nossa plataforma. Junte-se à nossa plataforma para conectar-se com especialistas prontos para fornecer respostas detalhadas para suas perguntas em diversas áreas.
Sagot :
Resposta:
Segue a listagem em linguagem C abaixo.
Explicação:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
// Estrutura para conter os parâmetros de entrada e retorno da função
typedef struct {
int ordenada; // Se a sequência está ordenada
int ordenada_ate; // Índice até o qual a sequência está ordenada
int menor; // Menor valor
int maior; // Maior valor
} resposta_t;
resposta_t* verificar_sequencia(int *sequencia, int n) {
resposta_t *resposta = (resposta_t*)malloc(sizeof(resposta_t));
int ordenada = 1; // 0 = falso, 1 = verdadeiro
int ordenada_ate = n-1;
int menor = INT_MAX;
int maior = INT_MIN;
for (int i = 0; i < n; i++) {
int num = *(sequencia+i);
// se menor que o minimo
if (num < menor) {
menor = num;
}
// se maior que o maximo
if (num > maior) {
maior = num;
}
// Se item anterior menor que o atual, não está ordenada
if (i > 0 && ordenada && *(sequencia+i) < *(sequencia+i-1)) {
ordenada = 0;
ordenada_ate = i-1; // Ordenada até =
}
}
resposta->maior = maior;
resposta->menor = menor;
resposta->ordenada = ordenada;
resposta->ordenada_ate = ordenada_ate;
return resposta;
}
int main()
{
int *sequencia;
int n;
printf("Digite n: ");
scanf("%d", &n);
sequencia = (int *)malloc(n);
for (int i = 0; i < n; i++) {
int num;
printf("Digite um inteiro: ");
scanf("%d", &num);
*(sequencia+i) = num;
}
printf("Sequencia: ");
for (int i = 0; i < n; i++) {
printf("%d ", *(sequencia+i));
}
printf("\n");
resposta_t *resposta = verificar_sequencia(sequencia, n);
printf("Menor valor: %d\n", resposta->menor);
printf("Maior valor: %d\n", resposta->maior);
if (resposta->ordenada) {
printf("Sequencia ordenada.\n");
} else {
printf("Sequencia nao ordenada.\n");
}
printf("Parte ordenada da sequencia: ");
for (int i = 0; i <= resposta->ordenada_ate; i++) {
printf("%d ", *(sequencia+i));
}
printf("\n");
}
Obrigado por usar nossa plataforma. Nosso objetivo é fornecer respostas precisas e atualizadas para todas as suas perguntas. Volte em breve. Esperamos que isso tenha sido útil. Por favor, volte sempre que precisar de mais informações ou respostas às suas perguntas. Sistersinspirit.ca está sempre aqui para fornecer respostas precisas. Visite-nos novamente para as informações mais recentes.