Ir ao conteúdo
  • Cadastre-se

maior menor em c


Rudydrier

Posts recomendados

:rolleyes:Sou iniciante, alguem poderia me dizer o que faço para que um numero negativo não seja informado.

receba um conjunto de valores inteiros positivos e calcule a soma e mostre o maior e menor valor do conjunto. Considere que para encerrar a entrada de dados deve ser digitado o valor zero; para os valores negativos deve ser enviada uma mensagem de erro solicitando um novo valor; os valores negativos não entrarão no cálculo. Apresente ao final a soma, o maior e menor.*/

#include<stdio.h>
#include<stdlib.h>
main()
{
int nro,soma=0,maior=0,menor=0;
printf("digite os valores:");
scanf("%d",&nro);
maior=nro;
menor=nro;
while(nro!=0){


if(nro>0)
soma=soma+nro;
if(nro>maior)maior=nro;
if(nro<menor)menor=nro;

else if(nro<0)

printf("erro\n");
printf("digite os valores:");
scanf("%d",&nro);


}
printf("O maior Nro digitado é:%d\n",maior);
printf("O menor Nro digitado é:%d\n",menor);
printf("A soma dos Nros:%d\n",soma);
system("pause");
}

  • Triste 1
Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Cara, implementei um if-else e o resultado ficou assim:

#include<stdio.h>
#include<stdlib.h>
int main()
{
int nro,maior=0,menor=0;
printf("digite os valores:");
scanf("%d",&nro);
maior=nro;
menor=nro;
while(nro!=0){
if(nro>0){
if(nro>maior)maior=nro;
if(nro<menor)menor=nro;}
else
printf("Valor invalido.\n");
printf("digite os valores:");
scanf("%d",&nro);
}

printf("O maior numero digitado é:%d\n",maior);
printf("O menor numero digitado é:%d\n",menor);
system("Pause");
}

Retirei a soma, mas a sua está correta.

Abraços.:)

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
#include <stdio.h>

#include <stdlib.h>

int main()

{

int i,maior,menor,num;

num=0;

maior=0;

menor=0;

for(i=0;i<10;i++) {

printf("DIGITE UM NUMERO INTEIRO\n");

scanf("%d",&num);

if (i == 0)

maior = menor = num;

printf("NUMERO DIGITADO:%d\n",num);

if (num > maior)

maior = num;

printf("MAIOR: %d\n",maior);

if (num < menor)

menor = num;

printf("MENOR: %d\n",menor);

}

printf("O NUMERO MAIOR E:%d\n",maior);

printf("O NUMERO MENOR E:%d\n",menor);

system("pause");

return 0;

}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 5 anos depois...

Verifica se isso serve para você.

#include <iostream> 
using namespace std;

int main(){
    int maxVal, minVal, num;

    for(int i=0; i < 5; i++){
        cout << "digite um valor" << endl;
        cin >> num;
        
        if(i==0){
            maxVal = num;
            minVal = num;
        }
            if(num > minVal){
              maxVal = num;
            }
            if(num < minVal){
                minVal = num;
            }
        }
            
            cout << "Menor é " << minVal << " Maior é " << maxVal << endl;
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • 2 anos depois...
Em 01/06/2009 às 15:44, Rudydrier disse:

[...] alguém poderia me dizer o que faço para que um numero negativo não seja informado [...]

Essa, talvez, não seja a questão!

 

Supostamente, há captura duma lista de números, depois, para cada ocorrência de número negativo, é necessário entrar com positivo.

 

A propósito, a fonte da lista não é o teclado + usuário, não tem sentido ser deste jeito. Essa lista tem outras fontes: neste caso, acho melhor o arquivo texto (TXT).

 

*** O segundo prompt  acontece depois da captura da lista.

 

Em 01/06/2009 às 15:44, Rudydrier disse:
 printf("digite os valores:");
    scanf("%d",&nro);

Nada disso! 

 

1. Lista (o punhado de número no arquivo.txt);

2. Leituras de positivos (que corrigem os casos negativos);

3. Aquele relatório.

 

Para mim, algo assim é bom: C'11 - gcc '11.4

#include <stdio.h>
int main (int argc, char *argv[]) {
  FILE *f= NULL;
  if (argc<2 || NULL==(f= fopen (argv[1],"r"))) {
    perror ("Falha! Não encontrou o arquivo");
    return 0;
    }
  int numero= 0 ,maior= 0 ,menor= 0 ,soma= 0;
  while (fscanf (f,"%d",&numero)==1) {
    if (0==numero) break;
    while (0>=numero) {
      printf ("%c%s%d%s",'\r',"Erro número não positivo (",numero,"): ");
     
      int c= getchar ();
      if (EOF==c) break;
      if ('\n'==c) continue;
   
      ungetc (c,stdin);
     
      if (scanf ("%d",&numero)!=1) getchar ();
      }
    if (soma) { 
      soma+= numero;
      if (numero>maior) maior= numero;
          else
      if (numero<menor) menor= numero;
      } else {
      soma= maior= menor= numero;  
      }
    }
  putchar ('\n');
  printf ("%s%d%c%d%c","O maior e o menor número é: ",maior,' ',menor,'\n');
  printf ("%s%d%c","A soma dos número é: ",soma,'\n');
  return 0;
  }

 

 

 

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!