Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Quadrier Problem

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 <
000
11.05.2005, 17:33 Uhr
~nub123
Gast


hi,

wie kann man in c++ es so porgrammieren das alles zahlen von 1 bis 10 quadriert werden... das schleife schreiben und co klappt aber wenn ichs quadarieren will (zahl^2) kommt nur ne übelst große, negative zahl heraus.. was mache ich falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.05.2005, 17:34 Uhr
Pablo
Supertux
(Operator)


zahl^2 ist kein Quadrat von zahl sondern das bitweise XOR mit 0x00000002. Sollte aber trotzdem nicht negativ sein. Schau dir die Funktion pow(3) an.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 11.05.2005 um 17:35 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.06.2005, 12:36 Uhr
~Nub1234
Gast


danke,

ich hab mal ein bisschen probiert und bin auf ein weiteres problem gestoßen.

ich möchte beispielsweise alle quadrierten zahlen in einer schleife miteinander addieren und am schluss ausgeben da erhalte ich wieder eine negative große zahl :/
hier mein code


Code:
#include <math.h>
#include <stdio.h>

void main( void )
{
   int z, x=2, y;
    for(int i=1; i<=3; i++){ // erstmal kleine zahl zum testen.
        z=pow(i,x);
        y=y+z;
    }
      printf("%d", y);
      scanf("%d", z); // weil fenster immer sofort geschlossen wird, return hilft auch nicht.
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.06.2005, 12:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du setzt y anfangs nicht auf 0 und es heißt int main


C++:
#include <math.h>
#include <stdio.h>

int main( void )
{
   int z, x=2, y = 0;
    for(int i=1; i<=3; i++){ // erstmal kleine zahl zum testen.
        z=pow(i,x);
        y=y+z;
    }
      printf("%d", y);
      scanf("%d", z); // weil fenster immer sofort geschlossen wird, return hilft auch nicht.
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.06.2005, 12:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


schneller ist

C++:
size_t quadsum(size_t n){return n*(n+1)*(2n+1)/6;}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.06.2005, 12:50 Uhr
0xdeadbeef
Gott
(Operator)


In diesem Fall reicht wohl

C++:
#include <stdio.h>

int main(void) {
  int sum = 0, i;

  for(i = 0; i <= 10; ++i) {
    sum += i * i; /* i * i = i² */
  }

  printf("%d\n", sum);
  getchar();

  return 0; /* In C++ kann man das return weglassen, in C nicht */
}


BTW,

C++:
scanf("%d", z);


ist falsch und höchst gefährlich. Das muss

C++:
scanf("%d", &z);


heißen. Aber an dieser Stelle ist es eh overkill, von daher...

Ansonsten gilt natürlich das, was windalf gesagt hat, wenn man von dem Syntaxfehler (2n statt 2 * n) absieht.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 01.06.2005 um 12:52 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.06.2005, 13:21 Uhr
~nub1234
Gast


wow, vielen vielen dank an euch alle, seit echt prima programmierer, *lob*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.06.2005, 14:31 Uhr
ao

(Operator)



Zitat von Pablo:
Schau dir die Funktion pow(3) an.

pow nimmt und retourniert Fließkomma-Werte, d.h. beim Konvertieren von und nach integer drohen Überraschungen durch Rundungsfehler. Wenn man nur quadrieren will, nimmt man statt pow (x, 2) besser x*x.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: