Ir para conteúdo
Fórum Script Brasil
  • 0

Programa que diz qual é maior e menor valor até que o zero seja inserido


speedxfx

Pergunta

Escreva um programa que leia uma sequência de números até que o usuário entre com o valor zero. Imprima o maior e o menor valor digitado. O valor zero não entra na comparação de maior e menor.

eu fiz o seguinte código, mas não está dando certo, alguém pode me ajudar? Pensei em fazer uma comparação a cada valor novo que o usuário insere, mas acredito que a variável n esteja recebendo maior e menor a cada repetição...

#include <stdio.h>
#include <stdlib.h>

int main()
{int n, maior, menor;
while(1){
    printf("\nInsira um valor: ");
    scanf("%d", &n);
maior=n;
menor=n;

if(n>maior){
maior=n;
}
if(n<menor){
    menor=n;
}
if(n==0) break;
printf("%d e %d", maior, menor);
}
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#include <stdlib.h>  
#include <stdbool.h>  //Usar boleanos(true e false)
#include <limits.h>  //UINT_MAX


int main() {
    unsigned int n;
    unsigned int maior = 0;
    unsigned int menor = UINT_MAX;
    bool sair = false;
    printf ( "%u e %u\n\n", maior, menor ); //Imprimimos só para ver o que há
    
    while ( !sair ) { //Por enquanto não sair...
        printf ( "\nInsira um valor: " );
        scanf ( "%u", &n );
        
        if ( n == 0 ) { sair = true; continue; } //Si foi zero queremos sair, voltamos para o while e obviamente sairemos do programa
        
        //si não foi zero
        if ( n > maior ) {
            maior = n;
        }
        
        if ( n < menor ) {
            menor = n;
        }
        
        
        printf ( "%u e %u\n", maior, menor );
    }
    
    return 0;
}

Se tiver duvidas pergunte

Link para o comentário
Compartilhar em outros sites

  • 0
#include <stdio.h>
#include <stdlib.h>

int main(){
	int n, maior, menor, first;
	first = 1; //Verdadeiro
	while (1){
		printf("Insira um valor (0 para sair): ");
		scanf("%d", &n);
		if (!n) break;	//Encerrar o laço quando n=0 -> n=falso -> !n=verdadeiro
		if (first){
			maior = n;	//Inicializando as variaves com o primeiro valor digitado, visto que não temos ideia do intervalo de valores que o usuários ira inserir
			menor = n;
			first=0; //Falso
		}
		else{
			if (n>maior) maior = n;	//Comparação
			if (n<menor) menor=n ;
		}
	}
	printf("Menor numero: %d\nMaior numero: %d\n", menor, maior);	//Impressão de resultados
	return 0;
}

 

3 horas atrás, vangodp disse:

unsigned int n; unsigned int maior = 0; unsigned int menor = UINT_MAX;

Bom, não é mencionado que os números serão todos naturais.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...