Jump to content
Fórum Script Brasil
  • 0

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


Question

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 to post
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148703
    • Total Posts
      644489
×
×
  • Create New...