taschenrechner mit atoi()

marvellous

Mitglied
#include <stdlib.h>
#include <stdio.h>

int umwandler(char *s)
{ int i=0,n=0,sign;
while(*(s+i)==' ')i++; // ueberlese fuehrende BLANC
sign=(*(s+i)=='-')? -1 : 1; // bestimme Vorzeichen
if((*(s+i)=='+') || (*(s+i)=='-')) i++;
do
{
n= n*10 + *(s+i)-'0';
i++;
}
while(('0'<=*(s+i)) && (*(s+i)<='9'));

return n*sign;

}
int main()
{
char t[30];
printf("Geben Sie eine Rechnung mit 2 Zahlen ein: ");
scanf("%s",&t);

printf("Das Ergebnis ist: %d \n", umwandler(t));

system ("pause");
return 0;

}





so also wenn ich ne negative zahl eingebe dann bekomm ich diese jetzt auch raus. das war die 1. aufgabe :D jetzt muss ich einen taschenrechner programmieren mit dieser funktion.
meine idee ist es wenn der benutzer z.b. " 5+5" eingibt das dann dieses plus ausgelesen wird und dann die summe draus bildet :S aber ich weiß nicht so recht wie ich das angehen soll..kann mir vielleicht jemand auf die sprünge helfen?

und dann vielleicht noch mit switch und case

/*
switch(*t)

{

case('+'):
printf("Ergebnis: %d", zahl1 + zahl2);
break;

case('-'):
printf("Ergebnis: %d", zahl1 - zahl2);
break;
}
*/
 
Hallo bei Tutorials.de,

erstmal zu deinem Post:
Wenn du Code postest, dann benutze bitte auch die "Code"-Funktion. Dann ist er wesentlich übersichtlicher und man tut sich leichter den Code zu verstehen.

Dann zu deiner Frage:
Du kannst deine Eingabe auf die Zahlen und Zeichen prüfen und entsprechend rechnen lassen.
Du kannst es mit switch-case machen, aber auch mit normalen if-Überprüfungen.
Ich weiß jetzt nicht wo genau noch dein Problem ist, da die Lösung mit switch-case eigentlich schon fast passt. Du musst halt das Zeichen (+, -, * und /) rausfiltern.

grüße
 
Zurück