Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » char ... int ? HILFE

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 < [ 2 ]
000
23.01.2005, 23:28 Uhr
~verzweifelt
Gast


hallo !

also ich bin in hoechster NOT ! ich brauche unbedingt eure Hilfe ! bitte helfen !

mein problem ist folgendes :

ikch habe ein programm, liest eine zeichenkette in ein char array : char test[250];

in diesem arraysoll eine zahl von 250 zahlen max stehn ! eine benutzung von integer ist auszuschliessen ...

denn : ich muss mit einer anderen zahl, die auch so vom benutzer eingegeben wurde, di auch 250 zahlen hat, multiplizieren !

aber : wie kann ich die zahlen dann eigens miteinander multiplizieren ? so zum beispiel :
test[0] * test1[1], test1 ist die andere zahl ! wie geht das ? das sind ja dann alles chars ! kann man die irgendwie zusammrechnen oder gibt es da eine andere moeglichkeit ? so mit atoi() ? oder wi geht das ?

bitte hellfen sie mier, dann es ist SEEEHR dringend ! bitte ...

danke im voraus !

gruss

ein verzweifelter c++ anfaenger ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.01.2005, 23:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


erklär mal bitte ausführlicher das lässt viele fragen offen...
du hast ein char-array in dem 250 zahlen stehen (sollen da die zahlenwerte genommen werden oder der wert den die zahlen repräsenten (also nur nummern von jeweils 0 bis 9)... dann kommt noch hinzu wenn du das als string einliest brauchst du noch ein zeichen mehr im array um das zu terminieren (also solltest du dann char test[251] nehmen...)...

in welcher form willst du das ergebnis denn abspeichern... wenn man annimmt es sind zahlen von 0 bis 9 ist theoretisch 9^250 als maximale zahl drin... in ein integer wird die garantiert nicht passen (obs in ein double passt weiss ich garade nicht aus dem hut aber da fängt man sich dann ungenauigkeiten ein...)...

also formulier mal bitte die aufgabe genauer und mach mal am besten ein beispiel wie das genau ablaufen soll...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.01.2005, 01:10 Uhr
Pablo
Supertux
(Operator)


ist das eine Hausaufgabe? Denn wir sind kein Hausaufgabenservice.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.01.2005, 14:59 Uhr
Bruder Leif
dances with systems
(Operator)


Das wäre so ziemlich exakt meine Proseminar-Arbeit von vor knapp drei Jahren. Der größte Teil davon war Theorie, ans Programmieren bin ich erst gegangen, als der prinzipielle Algorithmus fertig war. Wie sieht Deiner aus?
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.01.2005, 19:00 Uhr
~verzweifelt
Gast


hallo,

also est ist keine hausaufgabe, so schwierrige sachen machen wir nicht in der schule ... aber trotzdem : danke vorerst fuer eure antworten ! aslo man probelm, genauer erklaert ist dieses :

ich lese 2 zeichenketten vom benutzer und speichere die, in, un jetzt kommt schon die unsicherjeit : in char oder in string ? maximale zahl ist 250 ... also maximum 250 zeichen kann der benutzer eingeben ..n

so, jetzt nimmt man an, der benutzer hat nur zahlen eingegeben ... so zum beispiel : '456781786764872364'. jetzt kann ich ja jede zahl ansprechen, nee ? mit ihrem array index, oder geht das nicht ? so zum beispiel : wenn di eingebene zahl in char arr[250]; eingespeichert wird ... kann ich denn dann zum beispiel auf die 5 mit arr[1] zugreifen ?

so, jetzt hab ich arr[x] ... aber ich habe dann einen char, un keinen integer ! wie kann ich denn dann auf diese zahl zugreifen ?

und dann eine andere frage, die mich aber auch interessiert ... wie geht das, um zum Beispiel : 456789 und 34345345 versetzt zu addieren ? so zum beispiel :

456789
34345345


wie geht das ?

danke im voraus ...

verzweifelt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.01.2005, 19:56 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

1: Natürlich kannst Du auf die einzelnen Elemente eines char-Arrays zugreifen, das ist ja das schöne daran In arr[1] steht dann '5', genau.
2: char nach int: int ziffer = (int) arr[x] - '0';
3: Siehe Schulmethode. Weißt Du noch, wie wir alle damals in der Grundschule mehrstellige Zahlen addiert und multipliziert haben? Genau so!
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.01.2005, 20:26 Uhr
~verzweifelt
Gast


danke bruder !

aber eine frage ! wie kann ich denn zum beispiel alle diese nullen vermeiden, und dann zum Beispiel bestimmen, mit einer funktion, um wieviel stellen, leere stellen diese dann verschoben werden muessen ??

danke im voraus

verzweifelt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.01.2005, 21:01 Uhr
~kritiker
Gast


@ pablo
du bist wirklich erste klasse
du meckerst nur herum und beschwerst dich.ich habe das gefühl dass du nur opfer suchst. und wenn ich mich nicht täusche bist du moderator.
sei es eine aufgabe oder nicht. er hat es versucht zu machen und kommt nicht weiter. er stellt eine konkrete frage über die vorgehensweise. er bittet niemanden das ganze programm zu schreiben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.01.2005, 21:57 Uhr
~zerstreuter
Gast


Ich hatte Langeweile

C++:
    char    string1[250];
    char    string2[250];
    char    ergebnis[251];    // wir gönnen dem Ergebnis ein Zeichen mehr

    strcpy(string1,"456789");
    strcpy(string2,"34345345");

    // so lange Nullen dranhängen, bis beide Strings gleich lang sind
    while(strlen(string1)<strlen(string2))  strcat(string1,"0");  
    while(strlen(string2)<strlen(string1))  strcat(string2,"0");

    int laenge;
    int zahl1, zahl2, summe, uebertrag = 0;

    lange = strlen(string1);

    // Jetzt müsste man von rechts nach links die Felder durchgehen.
    // Von links nach rechts ist mir aber sympatischer, also dreh ich die Strings einfach um ;)
    // Aus '45678900' wird z.B. '00987654'
    strrev(string1);
    strrev(string2);

    // jetzt fangen wir an zu rechnen
    for (int i=0 ; i<laenge ; i++)
    {   zahl1 = string1[i] - '0';               // aus dem Zeichen '9' würde die Zahl 9
        zahl2 = string2[i] - '0';               // aus dem Zeichen '8' würde die Zahl 8
        summe = zahl1 + zahl2 + uebertrag;   // 9+8 = 17
        uebertrag = summe / 10;                  // die '1' merken, müssen wir beim nächsten Durchlauf zu unserer Summe dazuaddieren
        ergebnis[i]   = (summe % 10) + '0';    // die letzte Stelle unserer Summe ermitteln (7) und daraus das Zeichen '7' machen
        ergebnis[i+1] = '\0';                        // und da wir wieder faul sind gleich den String terminieren
    }

    // das Ergebnis ist fertig, nur steht es verkehrt herum in dem String, also drehen wir ihn wieder um
    strrev(ergebnis);

   // Färtisch

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
24.01.2005, 22:06 Uhr
~zerstreuter
Gast


Nachtrag: falls ich das mit dem 'versetzt addieren' falsch verstanden haben sollte (ist in dem Post etwas unglücklich dargestellt); sprich falls die Zahlen mathematisch korrekt addiert werden sollen, dann einfach zuerst die Strings umdrehen und dann erst auf gleiche Länge bringen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: