Ir ao conteúdo

Posts recomendados

Postado

:rolleyes:Sou iniciante, alguém 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
  • 2 anos depois...
Postado

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

  • 2 anos depois...
Postado
#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
  • 5 anos depois...
Postado

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
  • 2 anos depois...
  • 2 anos depois...
Postado
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;
  }

 

 

 

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