Gå til innhold

...............................


Anbefalte innlegg

Videoannonse
Annonse

enten inkluderer du #include <cmath> og bruker

 

pow(5.54, 64);

 

eller så lager du en for loop:

mul = 5.54;

for (int i = 0; i < 64; i++)

mul *= 5.54;

 

 

hvis det var det du lurte på...

 

edit: kom til å trykke ok før jeg var ferdig

Endret av Herr_Dude
Lenke til kommentar

Litt smør på flesk dette -- siden Herr_dude egentlig stort sett har svart på det, menneh:

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;


int main()
{
long double a_number;
long double power;
cout << "A number: ";
cin >> a_number;
cout << "..to the power of: ";
cin >> power;
cout << a_number << "^" << power << " = " <<  fixed << powl(a_number, power) << endl;	
return(0);
} // main

 

A number: 5.54

..to the power of: 64

5.54^64 = 384259791367129117347774565544556544179189055488.000000

 

A number: 2

..to the power of: 2

2^2 = 4.000000

 

Jeg regner med at det er "bra nok" å lese inn i en double-sak for både heltall og flyte-tall. Hvis ikke ville jeg brukt en template. Let me know - så paster jeg et eksempel på det også.

 

Fryktlig irriterende disse moderatorene på dette stedet forresten; bare i veien ..

 

Edit:

Hm,

5.54 * 64(tegn høyre hjørne)

Da skal 5.54 gange med seg selv 64 ganger.

Det å gange et tall med 64 er ikke det samme som å gange tallet med seg selv 64 ganger.

 

Edit2:

Når jeg tenker meg om (sjekker) så finnes det jo ikke noen funksjon á pow som tar heltall alikevell.

 

double pow(double x, double y);

float powf(float x, float y);

long double powl(long double x, long double y);

 

..men dette var det jeg tenkte på da:

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;


float myPow(float num, float pow)
{
return(powf(num, pow));
} // myPow

double myPow(double num, double pow)
{
return(std::pow(num, pow)); // Hvorfor må jeg ha std:: forran denne? (GCC 3.4.3 - mulig det er en bug.)
} // myPow

long double myPow(long double num, long double pow)
{
return(powl(num, pow));
} // myPow


int main()
{
long double a_number;
long double power;
cout << "A number: ";
cin >> a_number;
cout << "..to the power of: ";
cin >> power;
cout << a_number << "^" << power << " = " <<  fixed << myPow(a_number, power) << endl;	
return(0);
} // main

 

Edit3:

Så kunne a_number vært "samma om det er int eller double", som du sier .. liksom.

 

Edit4:

template-spesialiseringer var jo så klart ikke nødvendig her.

Endret av søppel4
Lenke til kommentar

wow. dagens pris for unødvendig bruk av templates går til: søppel. det er greit at templates er en fin ting, men du trenger ikke bruke det i hver eneste linje kode.. hva er egentlig vitsen med å lage en template, å så fullt spesialisere den for de typene du vil ha? det er derfor man har funksjonsoverloading.

du kan liksom fjerne

template<typename T>

T myPow(T num, T pow);

 

og fjerne template<> foran funksjonene så har du akkurat den samme koden

Lenke til kommentar

++(inkrementoperatoren)

--(dekrementoperatoren)

 

--X(predekrement)

X--(postdekrement)

 

x = y = 99;

x = --y; //x = 98 og y = 98, predekrement vil si at den dekrementererer før noe annet(pre)

x = y--; //x = 99 og y = 98, postdekrement vil si at den dekrementerer etterpå(post)

 

x = y = 99;

x = ++y; //x = 100 og y = 100, preinkrement vil si at den inkrementererer før noe annet(pre)

x = y++; //x = 99 og y = 100, postinkrement vil si at den inkrementerer etterpå(post)

 

Edit: som du sikkert har lest en eller annen plass C++:)

Edit2: var litt kjapp der ja forvekslet inkrement med dekrement i svingene:) takk Styggentorsken

Endret av Z_IM
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...