Çözüldü Java’da Girilen Sayıların Ortalamasını Alan Program

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
13 Ağustos 2019
Mesajlar
9.017
Makaleler
18
Çözümler
44
Daha fazla  
Cinsiyet
Erkek
Merhaba. Şöyle bir kod yazdım:

Java:
package lern.Exercises;

import java.util.Scanner;

public class Aa {
    public static void main(String[] args) {
        // GIRILEN UC SAYININ ORTALAMASINI ALAN PROGRAM
        Scanner tarama = new Scanner(System.in) ;
        System.out.println("Lutfen ilk sayinizi giriniz.");
        double sayi1 = tarama.nextDouble();
        System.out.println("Lutfen ikinci sayinizi giriniz.");
        double sayi2 = tarama.nextDouble();
        System.out.println("Lutfen ucuncu sayinizi giriniz.");
        double sayi3 = tarama.nextDouble();

        System.out.println("Sirasiyla girdiginiz sayilar: "+ sayi1 + ", " + sayi2 + ", "+ sayi3) ;
        double ortalama = (sayi1 + sayi2 + sayi3)/3 ;
        System.out.println("Girdiginiz sayilarin ortalamasi: " + ortalama) ;


    }
}
Sormak istediğim şey de şu:
İlk başta kaç sayının aritmetik ortalamasını hesaplamak istediğini kullanıcıya sorup o şekilde kullanıcıdan bir veri alma yoluna gitmek istiyorum. Bunu nasıl yapabilirim?
Cevaplarınız için şimdiden teşekkür ediyorum.
 
Çözüm
Liste'ler ve döngüler kullanılabilir.

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main
{

    public static void main(String[] args)
    {
        ArrayList<Double> numbers = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        System.out.print("Kaç tane sayının ortalamasını hesaplamak istiyorsunuz: ");
        int limit = scanner.nextInt();
        for (int i = 0; i < limit; i++)
        {
            System.out.printf("%d. sayıyı girin->", i + 1);
            numbers.add(scanner.nextDouble());
        }
        System.out.println("Sirasiyla girdiginiz sayilar: " + Arrays.toString(numbers.toArray()));
        double mean = 0;
        for(double num : numbers)
        {
            mean += num;
        }
        System.out.println("Girdiginiz sayilarin ortalamasi: " + mean/numbers.size());
    }
}
Liste'ler ve döngüler kullanılabilir.

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main
{

    public static void main(String[] args)
    {
        ArrayList<Double> numbers = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        System.out.print("Kaç tane sayının ortalamasını hesaplamak istiyorsunuz: ");
        int limit = scanner.nextInt();
        for (int i = 0; i < limit; i++)
        {
            System.out.printf("%d. sayıyı girin->", i + 1);
            numbers.add(scanner.nextDouble());
        }
        System.out.println("Sirasiyla girdiginiz sayilar: " + Arrays.toString(numbers.toArray()));
        double mean = 0;
        for(double num : numbers)
        {
            mean += num;
        }
        System.out.println("Girdiginiz sayilarin ortalamasi: " + mean/numbers.size());
    }
}
 
Çözüm
Java dili bilmiyorum fakat C# dilinde nasıl yapılacağını biliyorum ve mantığını anlatabilirsem seninde yapabileceğini düşünüyorum.
C#'da yapılmış hali burada: Ubuntu Pastebin

Mantığını anlatıcak olursam; Kaç tane sayı girileceğinin değerini ilk başta alıcaksın, For döngüsü ile o sayı değeri kadar ekrana veri girilmesi gerektiğini bildiriceksin, verileri Dizi içine almayı tercih ettim ben daha sonrası senin bildiğin gibi...
 
Liste'ler ve döngüler kullanılabilir.
Array'leri henüz öğrenmedim, öğrendikten sonra buraya kendi yazdığım kodu da koyarım, fikir edinmek amaçlı açmıştım konumu, teşekkür ederim.
Size de teşekkür ederim.
 
Dinamik ve Statik boyutlu dizilere geldiğiniz daha fazla anlamlı olacak ama;
ArrayList dinamik boyutlu olduğu için; örneğin kullanıcı 0 girene kadar tüm sayıların ortalaması, toplamı, medyanı, standart sapması vs sabit bir sayı belirtilmeden hesaplanabilir.

Ayrıca; next() methodlarını try-catch içerisinde kullanmak çok daha mantıklı olacaktır. Olası bir format hatası veya geçersiz değer girişinde RunTimeException alabilirsiniz.
 
Biraz havada kaldı en son yazdığınız ama sanırım öğrenince anlayacağım bunu tam manasıyla.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…