IDNLearner.com, onde especialistas respondem às suas dúvidas. Nossa plataforma é projetada para fornecer respostas rápidas e precisas para todas as suas consultas importantes.
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 compartilhar seu conhecimento. Volte em breve para fazer mais perguntas e contribuir com suas ideias. Sua participação é crucial para nossa comunidade. Obrigado por confiar no IDNLearner.com com suas perguntas. Visite-nos novamente para respostas claras, concisas e precisas.