C :: Aufgabe #4 :: Lösung #1

3 Lösungen Lösungen öffentlich
#4

Funktion welche Minimum und Maximum aus einem Array zurückgibt

Anfänger - C von Gustl - 07.12.2012 um 17:36 Uhr
Programmieren Sie eine Funktion welche aus einem Array von Integer-Elementen das Minimum und Maximum zurückgibt.
Als Übergabe-Parrameter wird das Array übergeben.

Testen Sie die Funktion mit 2 Abfragen, bzw. mit 2 verschiedenen Arrays.
Hilfestellung: Sortierverfahren - Wikipedia
#1
vote_ok
von devnull (8870 Punkte) - 01.07.2013 um 20:19 Uhr
Quellcode ausblenden C-Code
/****************************************
 * min_max.c   Min/Max aus Integer-Array
 * 
 * OS     :    GNU/Linux
 * compile:    gcc -Wall -o min_max min_max.c
 *
 * devnull     01-07-2013                
 ****************************************/
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include <time.h>


void min_max( int *pa, int n, int *pmin, int *pmax )
{
	int imin=INT_MAX;
	int imax=INT_MIN;
	int i;
	
	for (i=0;i<n;i++,pa++) {
	  imin = (*pa < imin)?*pa:imin;
	  imax = (*pa > imax)?*pa:imax;
	}
	*pmin=imin;
	*pmax=imax;
}

void print_array( int *pa, int n )
{
	int i;
	
	for (i=0;i<n;i++,pa++) printf("%d ", *pa);
	printf("\n");
}


/* main */
int main( void )
{
    int arr[] = {4,3,2,1,0,-1,-2,-3,-4,-5};
	int anz=sizeof(arr)/sizeof(int);
    int min,max,i;
   
    print_array( arr,anz );
    min_max( arr, anz, &min, &max );
	printf("Min=%d , Max=%d\n\n", min,max );

	srand(time(NULL));
    for (i=0;i<anz;i++)  arr[i] = rand() % 1000;
		
    print_array( arr,anz );
    min_max( arr, anz, &min, &max );
	printf("Min=%d , Max=%d\n\n", min,max );

	return 0;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben