0 Daumen
138 Aufrufe

Aufgabe:

* Schreiben Sie eine void-Funktion sort3, der drei Zahlen x, y, z ∈ R übergeben werden
und die diese Zahlen fallend sortiert ausgibt, d.h. zuerst das Maximum max{x, y, z} und zuletzt das
Minimum min{x, y, z}. Schreiben Sie ferner ein aufrufendes Hauptprogramm in dem die Zahlen x, y, z
eingelesen und die Funktion aufgerufen werden.


Problem/Ansatz:

#include <stdio.h>
#include <math.h>

int main () {
  double x = 0, y = 0, z = 0, tmp = 0;

  printf("x = ");
  scanf("%lf", &x);
  printf("y = ");
  scanf("%lf", &y);
  printf("z = ");
  scanf("%lf", &z);
 
 
  if(x < y){
        tmp = x;
        x = y;
        y = tmp;
        tmp = 0;
    }

    if(y < z){
        tmp = y;
        y = z;
        z = tmp;
        tmp = 0;
    }
   
    if(x < y){
        tmp = x;
        x = y;
        y = tmp;
        tmp = 0;
    }

    printf("%f\n%f\n%f",x,y,z);

    return 0;
}

Hätte das Jetzt als Lösung aber wie man sieht habe ich keine Void Funktion verwendet. Bitte um Lösungsvorschläge

von

Dann mach doch einfach eine void-Funktion daraus:

void sort3(double x, double y, double z)
{
// sortieren

// ausgeben
}

Anschließend kannst du deine main Funktion umbauen:

int main()
{
double x = 0, y = 0, z = 0;

printf("x = ");
scanf("%lf", &x);
printf("y = ");
scanf("%lf", &y);
printf("z = ");
scanf("%lf", &z);

sort3(x,y,z);

return 0;
}

Hat funktioniert danke dir, einfacher als ich erwartet habe :)

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community