Ir ao conteúdo

Posts recomendados

Postado

Bom dia Pessoal, tudo bem?

Eu resolvi este exercicio em java, porém está refazendo o calculo após eu digitar sim, vou colocar o enunciado do problema eo código que fiz.

Se alguem puder dar uma olhada agradeço.

 

Escreva um programa para ler duas notas de um aluno. Calcule e imprima a média do semestre. O programa deve aceitar apenas pontuações válidas (uma pontuação deve caber no intervalo [0,10]). Cada pontuação deve ser validada separadamente.

O programa deve imprimir uma mensagem "novo calculo (1-sim 2-nao)" que significa "novo cálculo (1-sim 2-não)". Depois, a entrada será (1 ou 2). 1 significa um novo cálculo, 2 significa que a execução deve ser concluída.

Entrada
O arquivo de entrada contém vários valores de ponto flutuante positivo ou negativo (duplo). Após a entrada de 2 pontuações válidas, um número inteiro X será lido. Seu programa deve parar quando X = 2.

Saída
Se uma pontuação inválida for lida, deve ser impressa a mensagem "nota invalida". Quando duas pontuações válidas são lidas, a mensagem "media =" deve ser impressa seguindo a média entre essas 2 pontuações. A mensagem "novo calculo (1-sim 2-nao)" deve ser impressa após a leitura de X. Essa mensagem deve ser exibida novamente se o número de entrada padrão para X for menor que 1 ou maior que 2.

import java.util.Locale;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Locale.setDefault(Locale.US);
		
		Scanner sc = new Scanner(System.in);
		
		float n1 = sc.nextFloat();
		float n2 = sc.nextFloat();
		double media;	
		int x = sc.nextInt();
		while(x != 2) {
			if((n1 >= 0.0 && n1<= 10.0) && (n2 >= 0.0 && n2 <=10.0)) {
				 media = (n1 + n2)/2;
				 System.out.printf("media = %.2f",media);
			}else {
				System.out.println("Nota inválida");
			}
			System.out.println("Deseja fazer novo calculo? [1-SIM / 2-NÂO]");
			x= sc.nextInt();
		}
		

	}

}

 

adicionado 9 minutos depois

Pessoal descobri o erro, minhas variáveis eu declarei fora do while, e o correto seria dentro do while😂

Coisa de iniciante mesmo.

Obrigado ao que me responderam.

ps. vou postar o código com a correção.

import java.util.Locale;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Locale.setDefault(Locale.US);
		
		Scanner sc = new Scanner(System.in);
		double media;	
		int x = 1;
		
		while(x != 2) {
			float n1 = sc.nextFloat();
			float n2 = sc.nextFloat();
			if((n1 >= 0.0 && n1<= 10.0) && (n2 >= 0.0 && n2 <=10.0)) {
				 media = (n1 + n2)/2;
				 System.out.printf("media = %.2f\n",media);
			}else {
				System.out.println("Nota inválida");
			}
			System.out.println("Deseja fazer novo calculo? [1-SIM / 2-NÂO]");
			x= sc.nextInt();
		}
		

	}

}

 

  • Obrigado 1

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!