Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Float und Array?

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
10.11.2004, 22:14 Uhr
~chris123
Gast


huhu.. hab da mal ne Frage
Ich versuche gerade das Hare-Niemeyer in C zu implementieren... bin aber immer noch ^^ ein ziemlich schlechter Programmierer... also...


habe ein array mandate[]= {0,0,0,0};

und nun hab ich eine Berechnung, dessen Ergebnis lautet : 2,92

wenn ich:

int mandate[] = {0,0,0,0} definiere und dann

mandate[0] = 2,92; sage

so würde mein array ja wie folgt aussehen: mandate[]={2,0,0,0}.

zumindest klappt das ja so bei mir..

für mein Programm ist das auch richtig, nur muss ich jetzt noch bei den anderen 3 Ergebnissen die höchste Nachkommazahl heraussuchen, welche dann noch ein zusätzliches Mandat bekommt.

Gibt es nicht eine Möglichkeit auch float Werte in ein Array aufzunehmen. Bei mir klappt das nicht, denn wenn ich:

float mandate[]={0,0,0,0};
und dann
mandate[0]= 2,92; sage
funktioniert das nicht.

Hab auch schon so in wenigen minuten nen code hingehauen, der halt nur bis zu der Stelle mit den Kommazahlen reicht, also die Grundmandate hab ich schon hinbekommen, aber ich trau mich net den code hier reinzuposten, denn der ist wirklich net schön.
Vllt hat ja jemand nen Tip für mich

gruß chris
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.11.2004, 22:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, das dezimaltrennzeichen ist ein . und kein , VLL ist das dein Problem. Ansonsten scheue dich nicht den Code reinzustellen, weil man selbst den schlechtesten Code verbessern kann und dadurch auch was lernen kann. Jeder hat mal angefangen (ok ich nicht )
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.11.2004, 09:43 Uhr
~chris123
Gast


Na gut, hier kommt mein Code gewusel , vllt kann mir ja einer helfen


C++:
//Hare-Niemeyer

#include <stdio.h>
#include <conio.h>

int mandate[]={0,0,0,0};
int parteien[]={1000,700,400,300};
int size = 3;
int gesamt=2400;
int anzahlmandate=7;

int berrechne(int *array,int size)
{
            int i;
            for (i=0;i<=size;i++)
            {
             mandate[i]= array[i] * anzahlmandate /gesamt; //das Ergebnis lautet 2,92
            }
}

//mein mandate array sieht nun so aus : mandate[]={2,2,1,0}
//dies ist auch richtig und es sind 5 mandate vergeben nun
//die restlichen 2 mandate werden an die Partei abgegeben, welche
//die höchste Nachkommastelle hat, u.s.w.
//ich hatte jetzt überlegt die 4 ergebnisse (2,92;2,04;1,17;0,875) - Mandate[0,1,2,3]
//irgendwie zu speichern und den maxwert aus diesen 4 Zahlen zu
//errechnen und dann bei diesem Wert die Mandate um 1 Wert zu erhöhen
// ich müsste dann aber 4 float Zahlen anlegen, und dachte das geht vllt.
//auch mit einem array. Hab keine Ahnung an dieser Stelle mehr


int main()
{

berrechne(parteien,size);

int k;
                 for (k=0;k<=3;k++)
                 { printf("%d",mandate[k]); }  //Ausgabe von Mandate


getch(); // nur um Programm unter win anzuhalten
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.11.2004, 11:48 Uhr
~chris123
Gast


Kann mir denn keiner sagen wie und ob man ein array mit Fließkommazahlen irgendwie erstellen kann, oder nen tip für eine andere Lösung geben ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.11.2004, 12:31 Uhr
RedEagle



Ich sehe in dienem code immer "int" !!??!!

evtl so:

C++:
float mandate[]={0.0, 0.0, 0.0, 0.0};

mandate[0] = 1.234;
mandate[1] = 5.678;
//usw...


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.11.2004, 12:58 Uhr
~chris123
Gast


Das hab ich schon ausprobiert,
wenn ich float mandate[]={0,0,0,0} sage oder
float mandate[]={0.0, 0.0, 0.0, 0.0};
und dann:

mandate [0]= 2,92;
oder
mandate [0] = 2.92;

bekomme ich wenn ichs mir ausgeben lasse:

0000 raus. geht also net.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.11.2004, 13:00 Uhr
~chris123
Gast


Oh tut mir leid hab meine fehler gefunden, sry

klappt natürlich

bin nicht so fit in programmieren, habe bei der Ausgabe

%d stehen gelassen und es nicht geändert auf :

%f also was ganz doofes

tut mir leid, danke für die antwort
werd jetzt mal probieren ob ich es hinbekomme.
 
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: