Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luthien

eclipse the method printf(string object ) int type printstream

Recommended Posts

Comecei a ver java tem pouco tempo e em todos os programas em q vou imprimir algum double ou float eu não consigo, sempre aparece o erro:

"Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, double)"

 

Achei q fosse erro meu mas aconteceu o mesmo quando fui executar um codigo do professor. O que é isso? Como conserto?

 

Se quiserem dar uma olhada no codigo:

package exercicios;

import java.util.Scanner;

public class Exercicio_02 {
	static Scanner entrada;
	public static void main(String args[])
	{
	double arrayDouble [];
	int qtd;
	
	entrada = new Scanner(System.in);
	
	System.out.println("Digite a quantidade de elementos do array");
	qtd = entrada.nextInt();
	arrayDouble = new double[qtd];	
	
	preencheArray(arrayDouble);
	exibeArray(arrayDouble);
	
	}

private static void preencheArray(double array[]){
	for(int i=0;i<array.length;i++){
		System.out.println("Digite o elemento da posição %d"+(i+1));
		array[i] = entrada.nextDouble(); 
	}
}

private static void exibeArray(double array[]){
	System.out.println("[");
	for(int i =0;i<array.length-1;i++){
		System.out.printf(" %lf -",+array[i]);
	}
	System.out.printf("%lf ]\n",+array[i]);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite Luthien,

 

Fiz uma pequena alteração nas duas funções, tente perceber a diferença:

	private static void preencheArray(double array[]){
		for(int i=0;i<array.length;i++){
			System.out.printf("Digite o elemento da posição %d",+(i+1));
			array[i] = entrada.nextDouble(); 
		}
	}
 
	private static void exibeArray(double array[]){
		System.out.println("[");
		int i = 0;
		while(i < array.length-1) {
			System.out.printf(" %lf -",+array[i]);
			i++;
		}
		System.out.printf("%lf ]\n",+array[i]);
	}

No entanto ainda existem alguns erros quando executa, mas deixo o desafio para você :P

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah obrigada mas olha esse outro codigo, sempre da o msm erro em todos os codigos q tento executar....

public class Exercicio_03 {
	
	static Scanner input;
	
	public static void main(String args[]){
		//Declaração de variáveis
		float arrayFloat [], num;
		int qtd;
		boolean estaPresente;
		//Inicialização do Scanner de leitura
		input = new Scanner(System.in);
		
		//Inicialização do Array
		System.out.println("Digite a quantidade de elementos do array");
		qtd = input.nextInt();
		arrayFloat = new float[qtd];
		
		//Preenchimento e exibição do array
		preencheArray(arrayFloat);
		System.out.println("Array Cadastrado: ");
		exibeArray(arrayFloat);
		
		//Busca no array
		System.out.println("Digite um numero (float) a ser pesquisado:");
		num = input.nextFloat();
		estaPresente = buscaNoArray(arrayFloat, num);
		if(estaPresente == true )
			System.out.println("O número %f está presente no array", num);
		else
			System.out.println("O número %f NÃO está presente no array", num);	
		
	}
	
	private static void exibeArray(float[] array) {
		System.out.print("[");
		int i;
		for (i = 0; i < array.length-1; i++) {
			System.out.print("%.2f - ", array[i]);
//			System.out.print(array[i] + " ,");
		}
		System.out.print("%.2f]\n", array[i]);
		
	}

	public static float[] preencheArray(float a[]){
		for (int i = 0; i < a.length; i++) {
//			Random random = new Random();
//			a[i] = random.nextFloat()*100; 
			System.out.println("Digite o elemento da posição " + (i+1));
			a[i] = input.nextFloat();

		}
		return a;
	}
	
	public static boolean buscaNoArray(float array[], float n){
		boolean estaPresente = false;
		for (int i = 0; i < array.length; i++) {
			if(array[i] == n){
				estaPresente = true;
				break;
			}
		}
		return estaPresente;
	}

}

Esse foi o professor q fez, nao pode estar errado hsauhsauhsa... da erros nas linhas 28, 30, 38, 41.

Aparece isso quando executo:

"Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, double)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve estar confundindo a sintaxe do java com C. Na linha 28:

System.out.println("O número %f está presente no array", num);

Troque para

System.out.println("O número " + num + " está presente no array");

O mesmo vale para a linha 30.

 

---

 

Na linha 38, se quiser usar o método print() formatado, troque:

System.out.print("%.2f - ", array[i]);

para:

System.out.print( String.format("%.2f", array[i)) );

O mesmo vale para a linha 41.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Luthien,

 

Como o rnxn falou também pode utilizar o System.out.printf(String, Object);

 

Força e bom estudo.

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.