Taschenrechner
-
Es gibt doch unter c++ bubblesort zum sortieren sowas gibt es doch bestimmt auch für C?
-
aehm, ich meinte folgendes:
du willst mathematische terme ausrechnen. du weisst aber nicht, wie du das anstellen sollst. schliesslich gibt es sowas wie rechenregeln (prioritaeten fuer operatoren...). damit du dich mal informieren kannst, hab ich dir ein paar schlagwoerter gegeben.wenn du char mit char* verwechselst, dann verstehst du c noch nicht wirklich. und was du da mit dem [40]er array anstellst ist mir schleierhaft...
-
um nochmal zum bubblesort zu kommen, der ist afaik in keiner ansi-c lib
implentiert, den musste also schon selbst programmierenlg icepacker
-
wie waers mit sort() oder qsort() (keine ahnung, welches es nun gibt).
-
Stefan311 schrieb:
Ich kenn die sprache. Und was mir nicht gelingt schau ich nach. Ich schreib sogar nen kleines Ebook für anfänger(aber c++). ABer das müsste doch klappen weil ja das zeichen eine Zahl hat. Weil mit int hab ich die sorge das +-/* zeichen nicht gespeichert werden können.
Du schreibst ein ebook, obwohl du selber keinen plan hast? omg
-
Ich will doch keine eingebene Buchstaben ausrechnen oder zusammenfassen.
Das problem mit einem int wäre doch das darin kein zeichen sein kann also +,-.*
und /. Dahe Will ich das mit einem char machen. Und um alles zu vereinfachen
mit einem array. Außerdem ist char* doch um speicher zu reservieren. Das will ich ja nicht. Und jetzt will ich erstmal nur überhaupt 1 und 1 zusammen rechnen.
Also so:
Eingabe: 11
dann soll er rechnen 1+1=2
Ergebnis:2
FertigIch hoffe du verstehst mich und falls das mit char und char* falsch ist sag es
mir ich bringe da gern was durcheinander.
-
@wtfff
JA aber über C++ nicht über C.Aber auch nur solches wie cout,int,cin,#include und weiteres. Also um schonmal zu wissen für was das und jenes ist.
-
Um mal dein Beispiel zu nehmen...
char eine[50]; int aus; printf("Taschenrechner"); printf("Ready\n"); scanf("%s", &eine); aus=(eine[0]-'0')+(eine[1]-'0'); printf("\nErgebnis: %d", aus); getchar(); return 0;
-
guck dir mal die funktion atoi() an!
zu char:
char var; //variable mit dem datentyp char char *var; //pointer auf einen char datentyp
@c.rackwitz also qsort() ist die funktion für den sortier algo quicksort
sort() ist was ganz andereslg icepacker
-
Stefan311 schrieb:
@wtfff
JA aber über C++ nicht über C.Aber auch nur solches wie cout,int,cin,#include und weiteres. Also um schonmal zu wissen für was das und jenes ist.c++ is aber nochmal wesentlich komplexer als c. naja, mir ja egal
-
[cpp] scanf("%s", **&**eine); [/cpp]
Das stimmt nicht ganz, oder?
-
jap, das "&" muss weg.
aber bei diesem frickel taschenrechner ist das dann auch egal
-
aus=(eine[0]-'0')+(eine[1]-'0');
warum hast du die eingegebenen zahlen nochmals mit 0 subtraiert?
-
eine[40]=eine[0]+eine[2];
Mal ne Frage was willst du damit machen?
Also wie es mir scheint solltest du noch etwas Erfahrung sammeln bevor du dich einem so komplexen Thema zuwendest.
Im übrigen hat dir c.rackwitz einige Stichwörter genannt, die du für dein Problem brauchen wirst. Also such doch mal nach Informationen darüber?
-
Stefan311 schrieb:
warum hast du die eingegebenen zahlen nochmals mit 0 subtrahiert?
Mit dem ASCII Wert von 0. C (btw. C++ auch) kann nur mit Integern rechnen. Also wandele ich das Zeichen in einen Integer um.
-
Also ich wollte erstmal überhaupt was zum rechnen hinbekommen. Jetzt werde ich mich mit suchen beschäftigen.
Danke für die Hilfe.
-
Hallo Stefan311
Zu erst muss ich mich leider einigen hier anschliessen, du hast anscheinend tatsächlich keinen Plan von C, und von C++ höstens ein bißchen. Naja egal, C ist jedenfalls sehr einfach und man kann es schnell erlrenen.Zufällig half ich vorkurzem einem Bekannten C zu lernen (der hat so Studienfach),dabei haben wir einge kleine Programme geschrieben, unter anderem auch einen "Tachenrechner".
Schau die den Code an, vielleicht bringt dich das weiter:#include <stdio.h> int main() { enum {FALSE, TRUE}; double a,b,ergebnis; int c, done; done = FALSE; while (done == FALSE) { printf("1 : Berechnung\n" "2 : Ende(y/n)\n" "Operation :"); c = getchar(); while (getchar() != '\n'); /*bereinigung*/ if (c == '1') { printf ("Eingabe:"); scanf ("%lf %c %lf",&a,&c,&b); while (getchar()!='\n');/*bereinigung*/ if (c == '+') ergebnis = a + b; if (c == '-') ergebnis = a - b; if (c == '*') ergebnis = a * b; if (c == '/') ergebnis = a / b; printf("Ergebnis : %f\n",ergebnis); } if (c == '2') { printf("Beenden(y fuer ja sonst nein):"); c = getchar(); while (getchar() != '\n');/*bereinigung*/ if (c == 'y') done = TRUE; } } return 0; }
Wenn du Fragen hast dann poste.
-
ProgChild schrieb:
Lolo... schrieb:
Er addiert keine HexWerte sondern ASCII-Codes.
Er addiert die numerischen Werte der Zeichen oft auch dargestellt in Hexschreibweise...
Wodrin dargestellt ist völlig wurscht. Er addiert ASCII Werte. Deine Aussage war einfach falsch. Aber dann nochmal nachstümpern
-
Lolo... schrieb:
ProgChild schrieb:
Lolo... schrieb:
Er addiert keine HexWerte sondern ASCII-Codes.
Er addiert die numerischen Werte der Zeichen oft auch dargestellt in Hexschreibweise...
Wodrin dargestellt ist völlig wurscht. Er addiert ASCII Werte. Deine Aussage war einfach falsch. Aber dann nochmal nachstümpern
stimmt. das mit den hexwerten war bullshit.
-
Marcin schrieb:
Naja egal, C ist jedenfalls sehr einfach und man kann es schnell erlrenen.
warum soll C denn sehr einfach sein?
nur weil C, relativ gesehen, einen kleinen sprachumpfang hat, ist die sprache
doch nicht gleich schnell erlernbar. ich denke eher, das leute ohne programmierkenntisse
sich mit C ziemlich schwer tun, es sei denn es fällt der meister vom himmel