AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Zahlen vergleich

Ein Thema von TJDD · begonnen am 22. Nov 2005 · letzter Beitrag vom 23. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#1

C++ Zahlen vergleich

  Alt 22. Nov 2005, 19:02
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???
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 19:21
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...
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#3

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 20:35
Ich wollte das Problem mal ohne Schleifen angehen
den code hab ich grad vom kopf dahingeschrieben
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 20:41
Wieso ohne Schleifen? Was ist schlimm daran?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#5

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 20:58
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
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#6

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 21:19
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_??
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#7

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 21:25
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...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 21:26
*reinausC#-kentnissensprech*
Das ist der sog. ternäre Operator.
Code:
return a? b : c;

==

if (a)
  return b;
else
  return c;
[edit]Zu langsam [/edit]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#9

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 21:46
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)
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#10

Re: C++ Zahlen vergleich

  Alt 22. Nov 2005, 22:24
Echt ätzend diese C-Syntax!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 Uhr.
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