Bom para acabar com esse "Precisa de número ou não precisa" segue o código, passando os números por parâmetro (Não tá bem feito) :lol:
[code]public class TesteParametro {
public static void main (String [] args) {
int menor = Integer.parseInt(args[0]);
int maior = Integer.parseInt(args[0]);
int soma = 0;
if (args.length < 3) {
System.out.println ("Insira mais números");
System.exit(0);
}
for(int i = 0; i < args.length; i++){
if(Integer.parseInt(args[i]) > maior){
maior = Integer.parseInt(args[i]);
}
if(Integer.parseInt(args[i]) < menor){
menor = Integer.parseInt(args[i]);
}
soma += Integer.parseInt(args[i]);
}
soma = soma - maior - menor;
System.out.println (soma);
}
}[/code]
Flw
[quote=marineli]Isso, não vou executar.
Mais pra eu executar é só passar valores, certo?[/quote]
Sim, você tem que receber valores, seja digitado pelo usuarios, ou fixado por você.
Estou tentando fazer cada posição do array receber um valor.
+/- assim.
Integer notas[] = new Integer[5];
int maior = notas[0];
notas[0] = 3;
notas[1] = 8;
notas[2] = 12;
notas[3] = 15;
notas[4] = 7;
int menor = notas[0];
int notaFinal = 0;
Nesse caso seria fixado pelo programador, mais ele apresenta um erro na segunda linha, o que pode ser?
Assim roda?
[COD]
public class Competicao {
public static void main (String [] args) {
Integer notas[] = new Integer[5];
Random random = new Random();
for (int i=0; i<notas.length;i++){
notas [i] = random.nextInt(100);
int maior = notas[0];
int menor = notas[0];
int notaFinal = 0;
for(int i = 0; i <notas.length; i++) {
if((notas[i]<menor)) {
menor = notas[i];
}
if((notas[i]>maior)) {
maior = notas[i];
}
notaFinal = nota final +notas [i];
}
notaFinal -=menor;
notaFinal -= maior;
System.out.println(notaFinal);
Oi Marineli.
Para colocar a tag code (não COD), basta selecionar seu código todo e clicar no botão Code, que existe logo abaixo do título, quando vc está escrevendo mensagem.
Consegui fazer esse:
[code]public class Array2 {
public static void main(String[] args) {
Integer notas[] = new Integer[5];
int maior = 0;
notas[0] = 3;
notas[1] = 8;
notas[2] = 12;
notas[3] = 15;
notas[4] = 7;
int menor = Integer.MAX_VALUE;
int notaFinal = 0;
for (int i = 0; i < notas.length; i++) {
if (notas[i] < menor) {
menor = notas[i];
}
if (notas[i] > maior) {
maior = notas[i];
}
notaFinal = notaFinal + notas[i];
}
System.out.println(menor);
System.out.println(maior);
}
}[/code]
Se você executar ele ele ira mostrar
3
15
Pois está exibindo o menor e o maior.
Oi! Marineli, acredito que é isso, localiza o maior e o menor e soma os diferentes:
public class MaiorMenor {
public static void main(String[] args) {
int valores[] = new int[5];
valores[0] = 15;
valores[1] = 8;
valores[2] = 65;
valores[3] = 32;
valores[4] = 60;
int menor = valores[0];//Considera a primeira posição como menor
int maior = valores[valores.length-1];//considera a última posição como maior
int somaTotal = 0; //soma dos valores exceto o maior e menor
//procura pelo maior e menor
for(int procura=0;procura <= valores.length-1; procura++){
if(valores[procura] < menor){
menor = valores[procura];
}
if(valores[procura] > maior){
maior = valores[procura];
}
}
// soma valores exceto o maior e o menor valor
for(int soma=0;soma <= valores.length-1; soma++){
if(valores[soma] < maior && valores[soma] > menor){
somaTotal += valores[soma];
}
}
System.out.printf("Menor é: %d \nMaior é: %d\nSoma:%d", menor, maior, somaTotal);
}
}
Resposta:
Menor é: 8
Maior é: 65
Soma:107
Abraço!!!
é só vc fazer o metodo recebendo como parametro o vetor…assim n precisaria digitar, só faria a logica…
- é sempre bom testar né…
vlw
[quote=luizfernandorg]Oi! Marineli, acredito que é isso, localiza o maior e o menor e soma os diferentes:
public class MaiorMenor {
public static void main(String[] args) {
int valores[] = new int[5];
valores[0] = 15;
valores[1] = 8;
valores[2] = 65;
valores[3] = 32;
valores[4] = 60;
int menor = valores[0];//Considera a primeira posição como menor
int maior = valores[valores.length-1];//considera a última posição como maior
int somaTotal = 0; //soma dos valores exceto o maior e menor
//procura pelo maior e menor
for(int procura=0;procura <= valores.length-1; procura++){
if(valores[procura] < menor){
menor = valores[procura];
}
if(valores[procura] > maior){
maior = valores[procura];
}
}
// soma valores exceto o maior e o menor valor
for(int soma=0;soma <= valores.length-1; soma++){
if(valores[soma] < maior && valores[soma] > menor){
somaTotal += valores[soma];
}
}
System.out.printf("Menor é: %d \nMaior é: %d\nSoma:%d", menor, maior, somaTotal);
}
}
Resposta:
Menor é: 8
Maior é: 65
Soma:107
Abraço!!![/quote]
Cara, então pelo o que eu entendi no seu, você ja definiu qual é o maior e o menor, você não fez o programa achar qual era certo?
E eu consegui fazer o meu dar certo:
[code]public class Array2 {
public static void main(String[] args) {
Integer notas[] = new Integer[5];
int maior = 0;
notas[0] = 3;
notas[1] = 8;
notas[2] = 12;
notas[3] = 15;
notas[4] = 7;
int menor = Integer.MAX_VALUE; // MAX_VALUE é o maior valor que pode ser usado em Java.
int notaFinal = 0;
for (int i = 0; i < notas.length; i++) {
if (notas[i] < menor) {
menor = notas[i]; //Procura qual a menor nota
}
if (notas[i] > maior) {
maior = notas[i]; //Procura qual a maior nota
}
notaFinal = notaFinal + notas[i];
}
System.out.println(notaFinal-menor-maior); // Exibe a soma das notas desprezando a maior e a menor nota
System.out.println(menor);
System.out.println(maior);
}
}[/code]
Eu estava fazendo a subtração dentro do for, depois que percebi que teria que fazer fora do for ![:smiley: :smiley:](https://www.guj.com.br/images/emoji/twitter/smiley.png?v=9)
Consegui montar um usando o JOptionPane, nesse caso o usuario digitara o valor da nota:
[code]import javax.swing.JOptionPane;
public class Array2 {
public static void main(String[] args) {
Integer notas[] = new Integer[5];
int maior = 0;
int menor = Integer.MAX_VALUE;
int notaFinal = 0;
notas[0] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota")); // Joga o valor digita pelo usuario na posição 0
notas[1] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota")); // Joga o valor digita pelo usuario na posição 1
notas[2] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota")); // Joga o valor digita pelo usuario na posição 2
notas[3] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota")); // Joga o valor digita pelo usuario na posição 3
notas[4] = Integer.parseInt(JOptionPane.showInputDialog("Digite uma nota")); // Joga o valor digita pelo usuario na posição 4
for (int i = 0; i < notas.length; i++) {
if (notas[i] < menor) {
menor = notas[i];
}
if (notas[i] > maior) {
maior = notas[i];
}
notaFinal = notaFinal + notas[i];
}
JOptionPane.showMessageDialog(null, "Soma das notas desprezando a maior e a menor nota: " + (notaFinal-menor-maior));
JOptionPane.showMessageDialog(null,
"Menor nota: " + menor);
JOptionPane.showMessageDialog(null,
"Maior nota: " + maior);
}[/code]
Só que eu tenho uma duvida, por exemplo o o cliente tem que digitar em 80 valores (isso é um absurdo, mas estou supondo) eu teria que criar 80 JOptionPane para jogar um valor em cada posição, ou eu posso usar um loop para ele exibir 80 vezes a mensagem e ir jogando o valor para cada posição?
Valeu…
Que tal assim: achei muito legal!!! ![:slight_smile: :slight_smile:](https://www.guj.com.br/images/emoji/twitter/slight_smile.png?v=9)
import javax.swing.JOptionPane;
public class MaiorMenor {
public static void main(String[] args) {
int valores[] = new int[5];
String entrada = "";
// obtendo números do usuário
for (int input = 0; input <= valores.length - 1; input++) {
valores[input] = Integer.parseInt(JOptionPane.showInputDialog("Digite um número?"));
entrada += String.format("%d\n", valores[input]);
}
JOptionPane.showMessageDialog(null, "Números digitados:\n"+ entrada);
int menor = valores[0];// Considera a primeira posição como menor
int maior = valores[valores.length - 1];//considera a última posição maior
int somaTotal = 0; // soma dos valores exceto o maior e menor
// Procura pelo maior e menor
for (int procura = 0; procura <= valores.length - 1; procura++) {
if (valores[procura] < menor) {
menor = valores[procura];
}
if (valores[procura] > maior) {
maior = valores[procura];
}
somaTotal += valores[procura];
}
somaTotal -= (maior+menor);
// Incrementando um pouco mais,
String ordenados = "";
// Ordenando os valores
for (int i = 0; i < valores.length; i++) {
for (int j = i; j < valores.length; j++) {
if (valores[j] < valores[i]) {
int temp = valores[j];
valores[j] = valores[i];
valores[i] = temp;
}
}
ordenados += String.format(" %d ", valores[i]);
}
JOptionPane.showMessageDialog(null, "Em ordem:\n" + ordenados);
String saidaFinal = String.format("Menor: %d\nMaior: %d\nSoma: %d (Menos maior e menor)", menor, maior, somaTotal);
JOptionPane.showMessageDialog(null, saidaFinal);
}
}
o que você acha?