Arrays Ermitteln



  • Hallo,
    ich habe zwei fragen!
    ein array aus 10 Feldern, in die ich Zahlenwerte einlesen soll.
    Folgende frage:
    Wie kann ich das array mit der Höchsten Zahl ausgeben bzw ermitteln??
    Berechne die höchste Differens von zwei aufeinanderfolgenden array!!?

    wäre super wenn ihr mir helfen könntet.
    lg basit



  • Wie sieht dein Ansatz aus bei dem du nicht weiterkommst?



  • int array[10]; //array mit 10 elementen
    array[0] = 1; //werte im array setzen
    array[1] = 5;
    scanf("%d", &array[3]); //arraywert einlesen
    ...
    int maxposition = 0; //die position des größten elements
    for (int i = 1; i<sizeof(array)/sizeof(*array); i++)
        if (array[i]>array[maxposition]) //neuer größter wert
            maxposition = i;
    printf("Das größte Element ist %d an Position %d\n", array[maxposition], maxposition;
    

    Die größte Differenz geht genauso, du musst halt array[i] mit array[i+1] vergleichen und kucken, ob das größer als deine bisherige größte Differenz ist.



  • danke für deine hilfe, das erste Problem habe ich geöst bzw konnte ich lösen nun, das zweite da hänge ich auf dem schlauch, denn ich muss den differenz wert auch noch ausgeben, das bekomme ich nciht auf die Kette!!

    danke nochmal, bzw schonmal



  • Hmm, ich verstehe das Problem nicht. Du nimmst meinen Code, ersetzt maxposition durch groessteDifferenz und if (array[i]>array[maxposition]) durch if (array[i]-array[i+1]>groessteDifferenz) und hängst am Ende ein printf("größte Differenz: %d\n", groessteDifferenz) an.



  • wie wärs damit

    int a[3],i,max,index=0;

    printf("Bitte geben sie 3 Werte ein: \n");
    for(i=0; i<3; i++) {
    printf("a[%i] = ",i);
    scanf("%i",&a[i]);
    }

    max = a[0];
    for(i=1; i<3; i++) {
    if (a[i]>max)
    max = a[i];
    index = i;
    }
    printf("Der hoechste Wert war: %i mit index a[%i]\n",max,index);



  • #include <stdio.h>
    
    #define MAX (3)
    
    int main()
    {
    	int a[MAX];
    
    	int i = 0, pos = 0;
    
    	for (; i < MAX; ++i)
    	{
    		printf("a[%i] = ", i);
    		scanf("%i", &a[i]);
    	}
    
    	for (i = 1; i < MAX; ++i)
    	{
    		if (a[i] > a[pos])
    		{
    			pos = i;
    		}
    	}
    
    	printf("Max. Wert %i an der Stelle %i\n", a[pos], pos);
    }
    

Log in to reply