Forum: [C++] Miniräknar problem

Forum huvudsida -> Programmering -> [C++] Miniräknar problem

Sidor: 1

Till botten

Mathiasth 20:07 - 4:e September 2007 | Post #1
Medlem
Inlägg: 2


Skicka PM
Började läsa lite om c++ igår och kände att tiden var mogen för mig att göra en egen miniräknare idagSmiley
Det gick dock inte helt som planerat... Jag börjar med koden som ser ut såhär:

#include "iostream"

using namespace std;
using std::cout;
using std::cin;

int main()
{
int tal;
int tal2;
int svar;
int summa1;
int tal3;
int summa2;
int tal4;
int summa3;
int tal5;
int summa4;


cout<<"Skriv in ett tal.";
cin>> tal;
cout<<"Ditt tal er:n" << tal << "n";
cout<<"Vill du: n[1]multipliceran[2]divideran[3]subtraheran[4]addera det?";


cin>> svar;

if (svar == 1)
{
cout<<"Okej, du vill multiplicera...n vilket tal vill du multiplicera._" << tal << "_med?n";

cin.ignore(255,''n'');
cin.get();
cin>> tal2;
summa1 = tal
  • tal2;
cout<< "Det blir:" << summa1;
}

if (svar == 2)
{
cout<<"Okej, du vill dividera...n vilket tal vill du dividera._" << tal << "_med?n";

cin.ignore(255,''n'');
cin.get();
cin>> tal3;
summa2 = tal / tal3;
cout<< "Det blir:" << summa2;
}

if (svar == 3)
{
cout<<"Okej, du vill subtrahera...n vilket tal vill du subtrahera._" << tal << "_med?n";

cin.ignore(255,''n'');
cin.get();
cin>> tal4;
summa3 = tal - tal4;
cout<< summa3;
}

if (svar == 4)
{
cout<<"Okej, du vill addera...n vilket tal vill addera._" << tal << "_med?n";

cin.ignore(255,''n'');
cin.get();
cin>> tal5;
summa4 = tal + tal5;
cout<< summa4;
}


return 0;

}

Ja, allt funkar finfint tills summan ska visas.
Jag får fram allting och skriver in andra talet när jag testar miniräknaren... Men när jag trycker enter så kommer det inte fram något svar... Vad är felet?

P.S av någon anledning är alla slashar framför N:en är borta.




Slash 21:10 - 4:e September 2007 | Post #2
Medlem
Inlägg: 141


Skicka PM
Kan det inte vara på grund av cin.get(); som ligger precis innan du tar in det andra talet?

-------------------------
Ingen sigantur!



Dread 20:30 - 5:e September 2007 | Post #3
Medlem
Inlägg: 135


Skicka PM
using namespace std;
using std::cout;
using std::cin;

varför kör du de två sista raderna? using namespace std; gör allt som de två gör + mkt mer... iof så är det bättre att köra std::cout framför alla (räknas som bättre programmering då om jag minns rätt?).

-------------------------
c++



Hetzz 22:07 - 6:e September 2007 | Post #4
Medlem
Inlägg: 516


Skicka PM
Jag vet inte om jag gör bort mig och uttalar mig nu men borde det inte va smidigare att köra tex

if
else if
elese

istället för massor if-satser?

får även för mig att man skulle kunna köra en while-loop eller dyl så att man kan göra flera uträkningar i rad.

men som sagt jag har inte riktigt koll på om jag flummar i nattmössan.

(inte lösning på ditt problem i vilket fall iofsSmiley)

-------------------------





FunkyChicken 22:46 - 6:e September 2007 | Post #5
Nyhetsredaktör
Inlägg: 800


Skicka PM
En switch är det rätta, men det hör som sagt inte hit.




add 17:40 - 7:e September 2007 | Post #6
Medlem
Inlägg: 81


Skicka PM
dessutom är det helt onädigt att deklarera så många variabler
tex tal1 tal2

försök att vara så enkel som bara möjligt, så är det
1) lättare att läsa och förstå
2) inte en massa onödig kod som bara är jobbig att bläddra förbi
3) ser snyggare ut
etc
dessutom så lär man sig koda mer "korrekt" (eller ordnat eller vad man nu skall kalla det) om man gör det enkelt för sig

-------------------------

Du misslyckas bara för att du ger upp, ge inte upp bara.
Som man brukar säga "Defeat is a state of mind" // NetNinja





Smygis 21:31 - 7:e September 2007 | Post #7
Medlem
Inlägg: 90


Skicka PM
Undvik att duplicera kod, Först och främst.
Sedan ska det vara <> runt include saken inte "" (Du kan använda "" men de har en annan funktion.)

Sedan så försök hålla koden så lättläst som möjligt.

Fixat och donat lite.
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int tal, tal2, svar, summa;
  8.  
  9. cout << "Skriv in ett tal.";
  10. cin >> tal;
  11. cout << "Ditt tal er: " << tal << endl;
  12. cout << "Vill du:" << endl
  13. << "[1]multiplicera" << endl
  14. << "[2]dividera" << endl
  15. << "[3]subtrahera" << endl
  16. << "[4]addera det?" << endl << "svar: ";
  17.  
  18.  
  19. cin >> svar;
  20.  
  21. if(svar == 1)
  22. {
  23. cout << "Okej, du vill multiplicera..." << endl
  24. << "vilket tal vill du multiplicera. " << tal << " med? ";
  25. cin >> tal2;
  26. summa = tal "G...NGERTECKEN H,,R!" tal2;
  27. }
  28. else if(svar == 2)
  29. {
  30. cout << "Okej, du vill dividera..." << endl
  31. << "vilket tal vill du dividera. " << tal << " med? ";
  32. cin >> tal2;
  33. summa = tal / tal2;
  34. }
  35. else if (svar == 3)
  36. {
  37. cout << "Okej, du vill subtrahera..." << endl
  38. << "vilket tal vill du subtrahera. " << tal << " med? ";
  39. cin >> tal2;
  40. summa = tal - tal2;
  41. }
  42. else if (svar == 4)
  43. {
  44. cout << "Okej, du vill addera..." << endl
  45. << "vilket tal vill addera. " << tal << " med? ";
  46. cin >> tal2;
  47. summa = tal + tal2;
  48. }
  49. else
  50. {
  51. cout << "oh noes" << endl;
  52. return 0;
  53. }
  54. cout << "Det blir:" << summa;
  55. cin.ignore(255, ''n'');
  56. cin.get();
  57. }


Sedan ett allmänt stiltips. Undvik mer än 80 tecken per rad. Jorden går inte under om man råkar dra till med 100 men försök hålla dig under 80.

-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!

Senast redigerad 01:26 - 12:a September 2007


Mathiasth 22:52 - 11:a September 2007 | Post #8
Medlem
Inlägg: 2


Skicka PM
Okej tack så mycket, har börjat tänka på att göra koderna jag skriver enklare, snyggare o.s.v, finns mindre grejjer att göra fel på då.
Smygis kod var ju ljusår från min, så det är bara att se och lära;P




Sidor: 1

Forum huvudsida -> Programmering -> [C++] Miniräknar problem
Atom feed

Du får inte posta i den här tråden | Till toppen