Obtenha as melhores soluções para suas perguntas no Sistersinspirit.ca, a plataforma de Q&A de confiança. Conecte-se com uma comunidade de especialistas prontos para ajudar você a encontrar soluções para suas dúvidas de maneira rápida e precisa. Faça suas perguntas e receba respostas detalhadas de profissionais com ampla experiência em diversos campos.
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");
}
Esperamos que isso tenha sido útil. Por favor, volte sempre que precisar de mais informações ou respostas às suas perguntas. Esperamos que isso tenha sido útil. Por favor, volte sempre que precisar de mais informações ou respostas às suas perguntas. Seu conhecimento é valioso. Volte ao Sistersinspirit.ca para obter mais respostas e informações.