कोड योग, औसत और सबसे बड़ा तत्व प्रदर्शित करता है। यह सबसे छोटा तत्व प्रदर्शित नहीं करता है क्योंकि आउटपुट हमेशा शून्य होता है। मैं सरणी में सबसे छोटा तत्व कैसे प्रदर्शित करूं?

import java.util.Scanner;
public class Average {

    public static void main (String[] args) {
        
        Scanner input = new Scanner(System.in);
        
        System.out.println("Enter the number of elements:");
        int length = input.nextInt();
        
        int[] num = new int[length];
        System.out.println("Enter the "+ length +  " array elements:");
        int sum = 0;
         int large,small;
         large =small = num[0]; 
         
         for (int i=0; i<length;i++) {
            num[i] = input.nextInt();
            sum = sum+ num[i];
              }
         
        for (int i=0; i<length; ++i) {
            if (num[i]<small) {
                 small = num[i];
            }
              
             if(num[i]> large) {
                 large = num[i];
            }
             }
        
        double avg = sum/length;
        System.out.println("The sum is "+ sum);
        System.out.println("The average is "+ avg);
        System.out.println("The smallest element is "+ small);
        System.out.println("The largest element is "+ large);
        }
}
0
louis drama 8 सितंबर 2020, 18:33

3 जवाब

सबसे बढ़िया उत्तर
import java.util.Scanner;

class Average {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("Enter the number of elements:");
        int length = input.nextInt();

        int[] num = new int[length];
        System.out.println("Enter the " + length + " array elements:");
        int sum = 0;
        int large, small;

        for (int i = 0; i < length; i++) {
            num[i] = input.nextInt();
            sum = sum + num[i];
        }

        large = small = num[0]; // small should be assigned after num is input
        
        for (int i = 0; i < length; ++i) {
            if (num[i] < small) {
                small = num[i];
            }

            if (num[i] > large) {
                large = num[i];
            }
        }

        double avg = sum / length;
        System.out.println("The sum is " + sum);
        System.out.println("The average is " + avg);
        System.out.println("The smallest element is " + small);
        System.out.println("The largest element is " + large);

    }
}
0
Lovesh Dongre 8 सितंबर 2020, 18:50

यदि आप जावा 8 या इसके बाद के संस्करण का उपयोग करते हैं, तो आप Arrays की स्ट्रीम विधि का उपयोग कर सकते हैं। यह सरणियों के साथ काम को सरल करता है। अधिक जानकारी के लिए

सबसे पहले Arrays को import java.util.Arrays; के रूप में आयात करें

System.out.println("The sum is " + Arrays.stream(num).sum());
System.out.println("The average is " + Arrays.stream(num).average());
System.out.println("The smallest element is " + Arrays.stream(num).min());
System.out.println("The largest element is " + Arrays.stream(num).max());
0
Lakshan 8 सितंबर 2020, 20:12

हाँ, ऐसा इसलिए हो रहा है क्योंकि डिफ़ॉल्ट रूप से आपका क्षेत्र छोटा 0 के बराबर है।

और अब अपने if स्टेटमेंट को स्टेप बाई स्टेप देखते हैं

        if (num[i]<small) {
             small = num[i];
        }

संख्याओं के लिए उदाहरण: 22,11,6,

So first step is num[0] < 0, why 0 as mention before small = 0 by default
Step two num[1] < 0, small stills stay 0
Step Three num[2] < 0, small stills stay 0.

आप क्या याद कर रहे हैं, आपको अपने लूप के पहले पुनरावृत्ति पर छोटे को मान निर्दिष्ट करने की आवश्यकता है, उदाहरण के लिए:

       for (int i=0; i<length; ++i) {
            if(i == 0){
                small = num[i];
            }
            if (num[i]<small) {
                small = num[i];
            }

            if(num[i]> large) {
                large = num[i];
            }
        }

अब आपका प्रोग्राम काम करना चाहिए :)

0
Borsuk 8 सितंबर 2020, 18:48