Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Zahlen vergleich (https://www.delphipraxis.net/57522-c-zahlen-vergleich.html)

TJDD 22. Nov 2005 18:02


C++ Zahlen vergleich
 
Wie kann man in c++ am besten 3 Zahlen miteinander vergleichen

Problem

Eingabe
zahl1
zahl2
zahl3


Ausgabe

kleinste
mitllere
goeste



meine idee ist bubblesort

if (zahl1 > zahl3)
{
tmp = zahl1
zahl1 = zahl3
zahl3 = tmp
}

if (zahl2 > zahl3)
{
tmp = zahl2
zahl2 = zahl3
zahl3 = tmp
}

if (zahl1 > zahl2)
{
tmp = zahl1
zahl1 = zahl2
zahl2 = tmp
}

kleinste = zahl1
mitllere = zahl2
groeste = zahl3


könnt ihr mir helfen???

malo 22. Nov 2005 18:21

Re: C++ Zahlen vergleich
 
Ich würde das in ein Array schreiben, und dann per Schleife die kleinste/größte Zahl suchen und merken. So (dahergetippt):
Code:
int myarray[2];
integervar1 = myarray[0];
integervar2 = myarray[1];
integervar3 = myarray[2];
int merke;
int kleinste;
int groesste;
int mittlere;
for (int i = 0; i <= 2; i++)
{
  if (i == 0) merke = myarray[0];
  if (i != 0)
  {
    if (myarray[i] < merke)
      merke = myarray[i];
  }
}
kleinste = merke;
/* Analog dazu die größte Zahl ermitteln */
for (int i = 0; i <= 2; i++)
{
  if (myarray[i] <> groesste) && if (myarray[i] <> kleinste)
    mittlere = myarray[i];
}
So in etwa.

Der Vorteil dabei zur Ermittlung der größten und kleinsten Zahl ist dabei, dass sie dynamischer ist, und nicht von dem Fall, dass 3 Zahlen verglichen werden, abhängig ist. Bei der mittleren Zahl ist das aber etwas komplizierter mit mehreren Zahlen... ;)

PS: Bitte verwende doch für C++-Code die [c]-Tags ;)

edit2: Kommentarbegrenzer richtig gesetzt...

TJDD 22. Nov 2005 19:35

Re: C++ Zahlen vergleich
 
Ich wollte das Problem mal ohne Schleifen angehen
den code hab ich grad vom kopf dahingeschrieben

3_of_8 22. Nov 2005 19:41

Re: C++ Zahlen vergleich
 
Wieso ohne Schleifen? Was ist schlimm daran?

DevilsCamp 22. Nov 2005 19:58

Re: C++ Zahlen vergleich
 
Code:
int MaxZahl(int a, int b)
{
  return (a>b)?a:b;
}

int MinZahl(int a, int b)
{
  return (a<b)?a:b;
}

void ZeigeZahlen()
{
  int kleinste = MinZahl(zahl1, MinZahl(zahl2, zahl3));
  int groesste = MaxZahl(zahl1, MaxZahl(zahl2, zahl3));
  int mitte = zahl1;

  if ((kleinste != zahl1)&&(groesste != zahl1))
    mitte = zahl1;

  if ((kleinste != zahl2)&&(groesste != zahl2))
    mitte = zahl2;

  if ((kleinste != zahl3)&&(groesste != zahl3))
    mitte = zahl3;

  printf("Kleinste Zahl: %d", kleinste);
  printf("Mittlere Zahl: %d", mitte);
  printf("Größte Zahl : %d", groesste);
}
Theoretisch sollte es so funktionieren...

Da ich schon länger nicht mehr mit C/C++ gearbeitet habe, könnte der Aufruf printf falsch sein. Bitte entsprechend anpassen ;)

TJDD 22. Nov 2005 20:19

Re: C++ Zahlen vergleich
 
Code:
int MaxZahl(int a, int b)
{
  return (a>b)?a:b;
}

int MinZahl(int a, int b)
{
  return (a<b)?a:b;
}
für was steht das denn_??

malo 22. Nov 2005 20:25

Re: C++ Zahlen vergleich
 
Code:
(Bedingung) ? Anweisung a /*Wenn Bedingung wahr*/ : Anweisung b /*Wenn Bedingung falsch*/
Das ist eine verkürzte Form der if-Konstruktion. Man könnte es auch so schreiben:
Code:
if (irgendwas_was_true_sein_kann)
  {
    Anweisung_a();
  } 
  else
  {
    Anweisung_b();
  }
Allerdings dachte, ich, dass das nur in PHP ginge... :gruebel:

Khabarakh 22. Nov 2005 20:26

Re: C++ Zahlen vergleich
 
*reinausC#-kentnissensprech*
Das ist der sog. ternäre Operator.
Code:
return a? b : c;

==

if (a)
  return b;
else
  return c;
[edit]Zu langsam :stupid: [/edit]

bigg 22. Nov 2005 20:46

Re: C++ Zahlen vergleich
 
Code:
   
#include <iostream.h>

int main()
{ int a, b;

  cout << "Minimum - Maximum";
  cout << "\n";
  cout << "________________________________________";
 
  cout << "\n";
  cout << "\n";
 
  cout << "Geben Sie 2 ganze Zahlen ein:";
  cout << "\n";
 
  cout << "1. Zahl:";
  cin >> a;
 
  cout << "2. Zahl:";
  cin >> b;

  cout << "\n" << "\n" << "\n" << "\n";
 
  if (a != b)
  {
    if (a < b)
    {
      cout << "Maximum: " << b;
      cout << "\n";
      cout << "Minimum:" << a;
    }
    else
    {
      cout << "Maximum: " << a;
      cout << "\n";
      cout << "Minimum:" << b;
    }
   
  }
  else
  {
    cout << "Beide Zahlen sind identisch!";
  }

  cout << "\n" << "\n" << "\n" << "\n" << "\n" << "\n";
  cout << "Druecken Sie eine beliebige Taste...";
   
  getchar();
  return 0;
}
Das ist natürlich nicht die Komplettlösung, es fehlt die 3te Zahl.
(Compiler: Borland C++ 5.5)

Insider2004 22. Nov 2005 21:24

Re: C++ Zahlen vergleich
 
Echt ätzend diese C-Syntax!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz