Ir ao conteúdo

Posts recomendados

Postado

Leia 100 números fornecidos pelo usuário. Você deve verificar se esses números são uma sequência Crescente, Decrescente, ou não possuem uma ordem.

#include <stdio.h>
//


int main (void){
	int numero_int = 0; 
  	int n

  	for (int n = 100; n; --n){
		scanf("%d", &numero_int);
		if(numero_int[n]>numero_int[n+1]){
        numero_int[n]=maior;
    }
if(numero_int[n]>numero_int[n+1]){
        numero_int[n]=menor;
    }
  	if(numero_int[n]>numero_int[n+1]){
        numero_int[n]=nao possuem nada;
    }
	
	printf("%d,%d,%d /n",maior,menor,nao possuem nada);
	return 0;
}

 

  • Curtir 2
Postado

ACtC-3f49O42kgnN04uQsLcXC1vUBo4jmiCcprOJ

Notei que lê e verifica a ordenação seguidamente.

 

 

Primeiro você somente pega os 100 números e guarda em um vetor, Depois Examina o Vetor!

Pule a leitura de 100 números e cria um vetor já preenchido (10) para teste do algoritmo principal:

Que determina se há uma sequência.

 

ACtC-3dyjIcKBxLnP6cENFjOD3wl-9ZlaW7loXFiDica

x1 < x2,..., < xn: Então é Crescente.

x1 > x2,..., > xn: Então é Decrescente.

 

ACtC-3cYOJy4iS8Gs66Jc46PHtwDfQbzmQuujP03

Parece fácil, mas não é

Tente essas dicas.

  • Curtir 2
Postado

@Matheus Freitas

Erros:

Redeclaração do inteiro n: você redeclarou ele no primeiro laço for;

Não declarou numero_int como sendo um vetor de inteiros;

Não usou outro laço for para avaliar os números.

Solução:

Peça os 100 números com um laço de repetição: a cada passagem no laço, vá armazenando os números em um vetor (array) de inteiros. Com um mesmo laço, porém com n inicializado com valor 1, verifique se n-1 < n, (ordem é crescente); se n-1 > n (ordem é decrescente); caso contrário, não tem ordem.

Teste isso:

#include <stdio.h>
#include <string.h>
#include <locale.h>

int main (void){
  	setlocale(LC_ALL, "Portuguese");
	int numeros[100]; 
  	int n, teste;
  	char sequencia[50];

  	for (n = 0; n < 10; n++){
		scanf("%d", &numeros[n]);
    }
    for (n = 1; n < 10; n++){
        if(numeros[n-1] < numeros[n]){
            if (teste == 2){
                strcpy(sequencia, "Não há ordem");
                break;
            } else {
                strcpy(sequencia, "A ordem é crescente");
                teste = 1;
            }
        } else if(numeros[n-1] > numeros[n]){
            if (teste == 1){
                strcpy(sequencia, "Não há ordem");
                break;
            } else {
                strcpy(sequencia, "A ordem é decrescente");
                teste = 2;
            }
        } else{
            strcpy(sequencia, "Não há ordem");
            break;
        }
    }
    
    printf("\n%s", sequencia);
	return 0;
}

 

  • Curtir 1
  • Obrigado 2
Postado

Seu programa pode mudar de resposta a cada laço? Ou não!

 

22 horas atrás, Lucca Rodrigues disse:

for (n = 0; n < 100; n++){
  ...
if(numeros[n-1] < numeros[n]){ 
  strcpy(sequencia, "A ordem é crescente"); 
} 
else 
  if(numeros[n-1] > numeros[n]){
  
  ...

 

quando n = 0, [n - 1] não é igual a [-1]?

 

  • Curtir 2
Postado

@Matheus Freitas     seu código está apenas verificando qual o maior ou menor ,  e não definindo  o tipo e sequência ,  creio para isso precise verificar  se o número anterior é maior ou menor que o inserido atual , e assim se houver apenas números maior que os anteriores , será em ordem crescente , ou se houverem apenas números menores que os anteriores , será em ordem decrescente ,  e se houver números maiores e menores que o anterior então não haverá ordem ,  e em outro caso os números serão todos iguais  ,  então para isso , seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
int main(){
    int numero_int;
    int n,n_ant,Me=0,Ma=0;
    for( n=10; n; --n ){
        scanf("%d",&numero_int );
        if( n == 10 )
            n_ant = numero_int;
        if( numero_int < n_ant)
            Me =  1  ;
        else
            if( numero_int > n_ant )
                Ma = 1;
        n_ant = numero_int;
    }
    if( Me && ! Ma )
        printf("A SeQuencia eh Decrescente . . . !");
    else
        if( Ma && ! Me )
            printf("A SeQuencia eh Crescente . . . !");
        else
            if( Ma && Me )
                printf("Os Numeros Nao Possuem Uma Ordem . . . !");
            else
                printf("Os Numeros Sao Todos Iguais . . . !");
    printf("\n\n\n");
    return 0;
}

 

  • Curtir 1
  • Obrigado 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!