Programm zu finden größte und die zweitgrößte Zahl in array

Ich suchte viele websites, die für diese Frage. Sie tun es von einigen anderen Ansatz.
Dieser code ist nur nicht zu geben ist output, wenn I-input erste element eines Arrays als größte also a[0].
Ich denke, einige kleinere änderungen erforderlich.
kann mir jemand bitte mir sagen?

#include <stdio.h>

int main() {
    int a[10], n;
    int largest1, largest2, i;

    printf("enter number of elements you want in array");
    scanf("%d", &n);
    printf("enter elements");
    for (i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    largest1 = a[0];
    for (i = 0; i < n; i++) {
        if (a[i] > largest1) {
            largest1 = a[i];
        }
    }
    largest2 = a[0];
    for (i = 1; i < n; i++) {
        if (a[i] > largest2 && a[i] < largest1)
            largest2 = a[i];
    }
    printf("First and second largest number is %d and %d ", largest1, largest2);
}
Sortieren Sie Sie und nehmen Sie die letzten beiden Elemente. Wenn es irgendeine Art von übung, wir hatten nur eine Frage wie diese, es wurde immer die max-und min einer 4-element-array in 4 Vergleiche.
Die Sortierung ist nicht der beste Algorithmus, den Sie verwenden konnte, da. Die Sortierung hat eine Komplexität von O(n * log(n)) (wenn richtig gemacht), während Sie finden können, die maximal in einer linearen Zeit.
Ich sehe eine erste Ausgabe, hier mit der Initialisierung der largest2. Wenn a[0] ist die größte, die Bedingung der zweiten for-Schleife immer falsch sein, und largest1 und largest2 werden sowohl a[0].

InformationsquelleAutor Bhart Kumar | 2017-02-22

Schreibe einen Kommentar