Ir ao conteúdo

Posts recomendados

Postado

Preciso q o programa pare quando o usuário digitar um número negativo , porém o número negativo não pode sair como menor , qual o problema com o meu código?

<>

<

#include<stdio.h>

 int main(){

     

     int maior, menor, num;

  maior=num;

      menor=num;

     do

     {

      printf("Numero : ");

        scanf("%i",&num);

        if(num>maior){

            maior=num;

            }

           

         else if(num> 0 && num <menor){

            menor=num;

            }

      

     } while(num>=0);

      printf("maior: %i \nmenor:%i",maior,menor);

return 0;

}

>

Postado
1 hora atrás, Andreygabs disse:

     int maior, menor, num;

  maior=num;

      menor=num;

Mas você acabou de declarar maior, menor e num...
pra que dizer que eles são iguais ai se não atribuiu valor nenhum pra eles ainda?

Eu não sei o que quer fazer, como é o enunciado? porque dependendo do enunciado talvez isso não ajude. tenta fazer isso no inicio:
maior=0;
menor=0;

o senhor fez:
while(num>=0);

Mas o que você quer não é um num>=0?
Então no while deveria estar assim:

while(num<0);

Para que enquanto o usuário digitar numero menor que zero, retornar ao scanf
 

Postado

apresente o enunciado pra ver se é isso. veja se isso lhe ajuda:
 


#include<stdio.h>

int main()
{
	int maior, menor, num1, num2;
	do
	{
		printf("Somente serão aceitos dois numeros maiores que 0:\n");
		printf("Numero 1: ");
		scanf("%i",&num1);

		printf("Numero 2: ");
		scanf("%i",&num2);

		if(num1>=0 && num2>=0)
		{
			if(num1>num2)
			{
				maior=num1;
				menor=num2;
			}
			else
			{
				maior=num2;
				menor=num1;
			}
		}
	}while(num1<0 || num2<0);

	if(maior==menor)
		printf("Os numeros são iguais: %i", maior);
	else if(maior!=menor)
		printf("maior: %i \nmenor:%i\n",maior,menor);

	return 0;
} 

 

  • 2 anos depois...
Postado
Em 20/09/2021 às 09:58, Andreygabs disse:

Preciso q o programa pare quando o usuário digitar um número negativo , porém o número negativo não pode sair como menor , qual o problema com o meu código?

Precisa não, tu queres  (...) que, após digitalização dum número (especificamente decimal),

 

cheque-o para negativos e ignore-o.

  /* Asuma que 0 é positivo, e neutro                                        */
  if (decimal<0) continue;
  if (decimal>maior) maior= decimal;
  if (decimal<menor) menor= decimal;
    

ou

  /* Asuma que 0 é positivo, e neutro                                        */
  if (decimal>-1) {
    if (decimal>maior) maior= decimal;
    if (decimal<menor) menor= decimal;
    }

 

Notei

Em 20/09/2021 às 09:58, Andreygabs disse:

int maior, menor, num;

  maior=num;

      menor=num;

 

Qual é valor na `num` ?

— Arbitrário, ele é logicamente errado.

 

***Resolve-se com maior e menor iguais ao primeiro valor da lista, numa primeira leitura que está fora do laço.

 

Ou inicializar após checagens durante o laço.

  char flag= 1;
  do {
    printf ("\rNumero : ");
  
    scanf ("%i",&num);

    if (0>num) continue;   
    if (flag) maior= menor= num , flag= 0;    

    if (num>maior) maior= num;
    if (num<menor) menor= num;
    } 
  while (num)/* stop 0 */;

 

 

Em 20/09/2021 às 09:58, Andreygabs disse:

qual o problema com o meu código?

Em 20/09/2021 às 09:58, Andreygabs disse:

 } while(num>=0);

***Um deles é insinuar o desejo de ignorar os números negativos enquanto o laço continua para os positivos.

 

 

Enfim,

algos assimn, para mim, já é bom!

C'11 - gcc '11.4

#include <stdio.h>
int main (){
  int maior ,menor ,num= 1;
  char flag= 1;
  do {
    printf ("\rNumero : ");

    num= -1;
    scanf ("%i",&num);

    if (0>num) continue;
    if (flag) maior= menor= num , flag= 0;
    if (num>maior) maior= num;
    if (num<menor) menor= num;
    } 
  while (-1<num)/* stop ... ,-1 */;
  putchar ('\n');
  printf ("%s%d%c%d%c","O menor e o maior número é: ",menor,' ',maior,'\n');
  return 0;
  }

 

 

 

 

— Okey ??

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!