Ir ao conteúdo
  • Cadastre-se

C Leia 100 números e verificar sequen. crescente,decresen;ou não possuem uma ordem


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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...