Ajuda programa que conta valores

10 respostas
Renatosantos

[color=darkblue]bom pessoal,
esse programa testa quantos números positivos, negativos e zeros é digitado.
mais e se for testar 5 números fica mais dificio. alguem tem um dica de como faz? :idea: [/color]

//Exercício Deitel
//By :Renatosantos
//programa que recebe 2 numeros, determina e imprima quantos numeros negativos, positivos e zeros
//foram iseridos

import java.util.Scanner;

public class Valores
{	
	public static void main( String[] args )
	{
		Scanner input = new Scanner(System.in);
		int a , b;
			
		System.out.println("Digite o primeiro numero:");
		a  = input.nextInt();
		System.out.println("Digite o segundo numero:");
		b  = input.nextInt();
		
		if (a > 0 && b > 0)
			System.out.printf("2 numeros positivos, nenhum negativo e nenhum zero.\n\n");
		if (a < 0 && b < 0)
			System.out.printf("nenhum posistivo, 2 numeros negativos e nenhum zero.\n\n");	
		if (a == 0 && b == 0)
			System.out.printf("nenhum positivo, nenhum negativo e 2 zeros.\n\n");
		if (a > 0 && b < 0 || a < 0 && b > 0)
			System.out.printf("1 numero positivo, 1 numero negativo e nenhum zero.\n\n");
		if (a > 0 && b == 0 || a == 0 && b > 0)
			System.out.printf("1 numero positivo, nenhum negativo e 1 zero.\n\n");
		if (a < 0 && b == 0 || a == 0 && b <0)
			System.out.printf("nenhum numero positivo, 1 numero negativo e um zero.\n\n");			
	}	
}

10 Respostas

gustavocontabeis
Scanner input = new Scanner(System.in);  
    
	int[] nums = new int[5];
	int positivos = 0, negativos = 0, zero = 0;
    
	for (int i = 0; i < nums.length; i++) {
        System.out.println("Digite o "+(i+1)+"° numero:");  
        nums[i]  = input.nextInt();  
	}
	
	for (int i = 0; i < nums.length; i++) {
        if(nums[i]==0){
        	zero++;
        }else if(nums[i]>0){
        	positivos++;
        }else if(nums[i]<0){
        	negativos--;
        }
	}
	
    System.out.printf("%d numeros positivos, %d negativo e %d zero.\n\n", positivos, (Math.abs(negativos)), zero);
gustavocontabeis
Scanner input = new Scanner(System.in);  
        
		int[] nums = new int[5];
		int positivos = 0, negativos = 0, zero = 0;
        
		for (int i = 0; i &lt; nums.length; i++) {
            System.out.println("Digite o "+(i+1)+"° numero:");  
            nums[i]  = input.nextInt();  
		}
		
		for (int i = 0; i &lt; nums.length; i++) {
            if(nums[i]==0){
            	zero++;
            }else if(nums[i]&gt;0){
            	positivos++;
            }else if(nums[i]&lt;0){
            	negativos--;
            }
		}
		
System.out.printf("%d numeros positivos, %d negativo e %d zero.\n\n", positivos, (Math.abs(negativos)), zero);
fernandosavio

Na verdade você nem precisa guardar os valores.
É só receber, testar, guardar o resultado do teste nas variáveis positivos, negativos e zero e depois jogar fora esse valor…

public static void main(String args[]) {

		Scanner input = new Scanner(System.in);
		int positivos = 0, negativos = 0, zero = 0;
		int qtdeNumerosDigitados = 10;	//Quantos números o usuário deve digitar

		for(int i = 1; i <= qtdeNumerosDigitados; i++) {
			System.out.println("Digite o "+i+"° numero:");
			int temp = input.nextInt();
			if(temp>0){
				positivos++;
			}else if(temp<0){
				negativos++;
			}else{
				zero++;
			}
		}
		System.out.println("Positivos: " + positivos + "\nNegativos: " + negativos + "\nZeros: " + zero);
	}
fernandosavio

gustavocontabeis:
System.out.printf(&quot;%d numeros positivos, %d negativo e %d zero.\n\n&quot;, positivos, (Math.abs(negativos)), zero);

Você está misturando Java e C. Cuidado para não confundir o colega.
E você pode editar os tópicos que você mesmo postou, é só dar dois cliques no seu tópico e colocar as tags CODE no post…

adriano_si

fernandosavio:
gustavocontabeis:
System.out.printf(&quot;%d numeros positivos, %d negativo e %d zero.\n\n&quot;, positivos, (Math.abs(negativos)), zero);

Você está misturando Java e C. Cuidado para não confundir o colega.
E você pode editar os tópicos que você mesmo postou, é só dar dois cliques no seu tópico e colocar as tags CODE no post…

Opa Fernando, boa tarde, na verdade o gustavo usou Java sim cara, você que confundiu com C

http://download.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html#printf(java.lang.String, java.lang.Object…)

O printf é bastante útil para o que o colega quer fazer e deixa o código mais limpo, apesar de ser um pouco mais difícil de usar.

Abs [] e sucesso nos estudos

gustavocontabeis

O printf é pouco usado mas é um recurso poderoso. Não entendo porque muitos comparam-o com C se ele está disponível na API java.
É possível formatar, alinhar de forma limpa sem um monte de Strings concatenadas. Melhora a legibilidade da String pretendida (no meu ponto de vista).
Outro recurso interessante e pouco usado é o operador ternário…
O que acham mais clean?

String txt = x != null?"Sim":"Não";

ou

String txt = null; if(x != null){ txt = "Sim"; }else{ txt = "Não"; }
Abraço galera!

adriano_si

Porque eu acho que o C tem uma função nativa do core da linguagem que se chama printf… Aí já viu, o recurso fica com a cara da linguagem… heuehueehueehue

Abs []

ViniGodoy

É justamente porque foi de lá que ele foi copiado:
http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Existe no C desde que os computadores ainda funcionavam com transistores ao invés de circuitos integrados. Ou quase isso.

fernandosavio

Opa!
Perdoem a ignorância e a má-vontade de testar o código!
Obrigado pelas informações…

Renatosantos

Obrigado pelas informações tbm. :thumbup:

Criado 30 de agosto de 2011
Ultima resposta 30 de ago. de 2011
Respostas 10
Participantes 5