Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zaheln aufrunden auf volle hundert

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.03.2004, 15:05 Uhr
marcel331



Hallo
Ich habe ein Problem, in meinem Programm sollen alle Zahlen auf volle hundert gerundet werden. z.b 24 auf 100; 145 auf 200; 222 auf 300 usw.
Kann mir vielleicht einer helfen würd mich sehr freuen.

Marcel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.03.2004, 15:11 Uhr
typecast
aka loddab
(Operator)


Erster Gedanke

C++:
int round(int a)
{
  int ret = a +100;
  ret -= (a%100); // % war doch der modulo-Operator *amkopfkratz*
  return ret:
}


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 24.03.2004 um 15:11 Uhr von loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.03.2004, 16:13 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@loddab
ach ne nette idee den rest abzuziehen
ich glaub ich hätte es durch 100 geiteilt und dann wieder mit 100 multipliziert...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.03.2004, 16:15 Uhr
typecast
aka loddab
(Operator)


Wenn ich mich nicht täusche, würde man damit abrunden.

Code:
134 div 100 = 1
1 * 100 = 100


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.03.2004, 16:23 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@loddab
ich meinte nur die zeile, das ich vorher noch 100 raufpacken muss war mir schon klar

C++:
ret -= (a%100);




Bearbeitung:

wobei besser ist es wohl nur 99 raufzupacken sonst wird ja aus der 100 eine 200...


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 24.03.2004 um 16:25 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.03.2004, 16:29 Uhr
typecast
aka loddab
(Operator)


Ach so. Dann ist ja alles klar :-)
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
31.03.2004, 08:45 Uhr
~Aldebaran
Gast


hallo!

also angenommen a waere 10
addiert man immer 100 dazu >> erhaelt man 110
also in etwa int ret = a + 100;
nun aber nicht -= wuerde ja ret = ret - (a%100) bedeuten
gleich 110-(10%100)
10 divisor 100 waere doch 0
besser waere doch danach cout ret-a ;


waere dann 110 - 10 also 100
bei 356
456-56 also 400

usw gruesse Aldebaran
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
31.03.2004, 08:48 Uhr
~Aldebaran
Gast


ich nochmal


das mit den vollen zahlen solltest du natuerlich selber austuefteln
so schwer wird das ja jetzt nicht mehr sein

grusse
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
31.03.2004, 08:59 Uhr
Pablo
Supertux
(Operator)


Meine Lösung


C++:
#include <stdio.h>
#include <stdlib.h>

int rnd(int zahl)
{
    int tmp=zahl;
    if (zahl<1) return 0;
    while(tmp>100)
        tmp-=100;

    tmp=100-tmp;
    return zahl+tmp;
}

int main(int argc, char** argv)
{
    int i;
    if (argc==1) return 0;
    for(i=1; i<argc; ++i)
        printf("%d --> %d\n", atoi(argv[i]), rnd(atoi(argv[i])));

    return 0;
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
31.03.2004, 18:17 Uhr
~toxic
Gast


hi, will auch meinen senf dazugeben...
C++:
int tmp, zahl = 123;
tmp = zahl / 100; // tmp ist jetzt 1
tmp++;
zahl = tmp * 100; // zahl ist 200
...
// oder eben :
tmp = ((zahl / 100) + 1 ) * 100;


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: