Forum: Beräkning C++

Forum huvudsida -> Programmering -> Beräkning C++

Sidor: 1

Till botten

Alkvettern 13:15 - 11:a Mars 2010 | Post #1
Medlem
Inlägg: 5


Skicka PM
Hej

Försöker få till en beräkning som ska ske om man anger 2 tal.

Om man exv. anger tal 3 och 6 så ska kvadratroten räknas ut för alla tal imellan.
Dvs. 3*3+4*4+5*5+6*6 = 86

Har fått till en beräkning som fungerar hyfsat. Jag får alltid rätt svar men alltid 8 nr för mycket, har löst det genom att dra bort 8 i slutet men jag tror inte att det ska fungera så.

Sä här ser koden ut.

  1. int main()
  2. {
  3. int a, b, c, d, x, summa, kvadrat;
  4.  
  5. cout << "ange två tal ";
  6. cin >> a >> b;
  7.  
  8. //En omvandling så att talen kommer i storleksordning
  9. if(a > b)
  10. {
  11. x = a;
  12. a = b;
  13. b = x;
  14. }
  15.  
  16. c = 0;
  17. d = 1;
  18.  
  19.  
  20. // Kvadratroten ur
  21. for (int i = a; i <= b; i++)
  22. {
  23.  
  24. c += i;
  25. d *= i;
  26. summa = summa+(i*i);
  27.  
  28.  
  29. }
  30.  
  31. kvadrat = summa-8;
  32. cout << "Summan är " << kvadrat;
  33.  
  34. return 0;


Kan någon ge mig ett tips om hur jag kan lösa det här, utan att behöva dra bort 8 i slutet.
Jag har säkert tänkt fel någon stans.

Nu är koden updaterad.

Tack!


Senast redigerad 14:12 - 11:a Mars 2010


Vitdom 13:52 - 11:a Mars 2010 | Post #2
Medlem
Inlägg: 71


Skicka PM
Med koden du angett så verkar allt normalt. Kan du ange resten av koden? Det är troligen där som felet ligger.

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





Alkvettern 15:28 - 11:a Mars 2010 | Post #3
Medlem
Inlägg: 5


Skicka PM
Nu är koden updaterad.

Jo det fungerar, men jag förstår inte varför jag måste ta bort 8 på varje uträkning Smiley




Vitdom 18:24 - 11:a Mars 2010 | Post #4
Medlem
Inlägg: 71


Skicka PM
Felet är att du aldrig initialiserar variabeln summa.

Initialisera summa till 0 så ska du se att det fungerar utan att behöva subtrahera 8. Troligen så låg det alltid en 8 i variabeln från början när du testade.

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



Senast redigerad 18:26 - 11:a Mars 2010


tobeco 21:18 - 11:a Mars 2010 | Post #5
Medlem
Inlägg: 13


Skicka PM
Hej gjorde en alternativ lösning till ditt problem.
Men som sagts tidigare, initiera alltid variabler till 0 innan du ska använda dem.

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int a=0, b=0, x=0, summa=0;
  7. cout << "ange två tal: ";
  8. cin >> a >> b;
  9.  
  10. //En omvandling så att talen kommer i storleksordning
  11. if(a > b) {
  12. x = a;
  13. a = b;
  14. b = x;
  15. }
  16.  
  17. // Kvadratroten ur
  18.  
  19. for (int i = a; i <= b; i++) {
  20. summa = summa+(i*i); // här kan du importera cmath biblioteket
  21. // och använda funktionen pow(tal, exponent);
  22. }
  23. cout << "Summan är " << summa;
  24. return 0;
  25. }

I övrigt undrar jag vad du använde c och d variabeln till?

-------------------------
Less is more
Funktion framför designe!!!!!



Sidor: 1

Forum huvudsida -> Programmering -> Beräkning C++
Atom feed

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